django:package:storages
目录
django-stroages
安装
- Bash
- uv add 'django-storages[s3]'
配置
- python
- env = environ.Env(
- ...
- AWS_S3_ACCESS_KEY_ID=(str, ""),
- AWS_S3_SECRET_ACCESS_KEY=(str, ""),
- AWS_STORAGE_BUCKET_NAME=(str, ""),
- AWS_LOCATION=(str, ""),
- AWS_S3_REGION_NAME=(str, ""),
- AWS_S3_CUSTOM_DOMAIN=(str, ""),
- AWS_S3_ENDPOINT_URL=(str, ""),
- )
- AWS_S3_ACCESS_KEY_ID = env("AWS_S3_ACCESS_KEY_ID")
- AWS_S3_SECRET_ACCESS_KEY = env("AWS_S3_SECRET_ACCESS_KEY")
- AWS_STORAGE_BUCKET_NAME = env("AWS_STORAGE_BUCKET_NAME")
- AWS_LOCATION = env("AWS_LOCATION")
- AWS_S3_REGION_NAME = env("AWS_S3_REGION_NAME")
- AWS_S3_CUSTOM_DOMAIN = env("AWS_S3_CUSTOM_DOMAIN")
- AWS_S3_ENDPOINT_URL = env("AWS_S3_ENDPOINT_URL")
- AWS_S3_ADDRESSING_STYLE = "virtual"
- AWS_S3_SIGNATURE_VERSION = "s3"
- STORAGES = {
- "default": {
- "BACKEND": "storages.backends.s3.S3Storage",
- }
- }
测试代码
- Python
- from django.core.files.storage import default_storage
- from django.core.files.base import ContentFile
- content = ContentFile(b"Hello World!")
- path = default_storage.save('test_file2.txt', content)
- print(f"文件保存路径: {path}")
- # 测试文件读取
- if default_storage.exists(path):
- with default_storage.open(path, 'r') as f:
- content = f.read()
- print(f"文件内容: {content}")
- # 测试文件URL生成
- url = default_storage.url(path)
- print(f"文件URL: {url}")
- # 测试文件删除
- default_storage.delete(path)
- print(f"文件是否存在: {default_storage.exists(path)}")
/storage/data/pages/django/package/storages.txt · 最后更改: 由 bestony