用户工具

站点工具


django:package:storages

django-stroages

安装

Bash
  1. uv add 'django-storages[s3]'

配置

python
  1. env = environ.Env(
  2.  
  3. ...
  4. AWS_S3_ACCESS_KEY_ID=(str, ""),
  5. AWS_S3_SECRET_ACCESS_KEY=(str, ""),
  6. AWS_STORAGE_BUCKET_NAME=(str, ""),
  7. AWS_LOCATION=(str, ""),
  8. AWS_S3_REGION_NAME=(str, ""),
  9. AWS_S3_CUSTOM_DOMAIN=(str, ""),
  10. AWS_S3_ENDPOINT_URL=(str, ""),
  11. )
  12.  
  13.  
  14. AWS_S3_ACCESS_KEY_ID = env("AWS_S3_ACCESS_KEY_ID")
  15. AWS_S3_SECRET_ACCESS_KEY = env("AWS_S3_SECRET_ACCESS_KEY")
  16. AWS_STORAGE_BUCKET_NAME = env("AWS_STORAGE_BUCKET_NAME")
  17. AWS_LOCATION = env("AWS_LOCATION")
  18. AWS_S3_REGION_NAME = env("AWS_S3_REGION_NAME")
  19. AWS_S3_CUSTOM_DOMAIN = env("AWS_S3_CUSTOM_DOMAIN")
  20. AWS_S3_ENDPOINT_URL = env("AWS_S3_ENDPOINT_URL")
  21. AWS_S3_ADDRESSING_STYLE = "virtual"
  22. AWS_S3_SIGNATURE_VERSION = "s3"
  23.  
  24. STORAGES = {
  25. "default": {
  26. "BACKEND": "storages.backends.s3.S3Storage",
  27. }
  28. }

测试代码

Python
  1. from django.core.files.storage import default_storage
  2. from django.core.files.base import ContentFile
  3. content = ContentFile(b"Hello World!")
  4. path = default_storage.save('test_file2.txt', content)
  5. print(f"文件保存路径: {path}")
  6. # 测试文件读取
  7. if default_storage.exists(path):
  8. with default_storage.open(path, 'r') as f:
  9. content = f.read()
  10. print(f"文件内容: {content}")
  11. # 测试文件URL生成
  12. url = default_storage.url(path)
  13. print(f"文件URL: {url}")
  14. # 测试文件删除
  15. default_storage.delete(path)
  16. print(f"文件是否存在: {default_storage.exists(path)}")
/storage/data/pages/django/package/storages.txt · 最后更改: bestony

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki