django-storages 未在 AWS Beanstalk Docker 部署中上传图像 django-storages 我的产品设置的一部分媒体存储

问题描述

我在使用 AWS Beanstalk 时遇到了 django-storages 的奇怪行为。

我通过以下设置使用 AWS Beanstalk 部署了我的 Django 项目

  • 应用负载均衡器
  • Nginx
  • 亚马逊 Linux2 AMI
  • Docker 镜像
  • Django 在容器入口处与 Gunicorn 一起执行

问题描述

  1. 当我使用 eb local run ... 在本地启动 Stack 时,一切正常。我可以上传图片,它们出现在 S3 中!对于较大的图像,这需要一些时间,但绝对没问题。

  2. 但是,当我使用 eb deploy 部署堆栈时,图像不再上传。在 POST 请求之后,会立即触发 GET 请求(即使对于大图像)并且不上传任何图像。

django-storages 我的产品设置的一部分

# # # #
# Offload MEDIA & STATIC to S3
# # # #
DEFAULT_FILE_STORAGE = 'custom_storages.MediaStorage'
THUMBNAIL_DEFAULT_STORAGE = 'custom_storages.MediaStorage'

STATICFILES_STORAGE = 'custom_storages.StaticStorage'
INSTALLED_APPS += ("storages",)
AWS_ACCESS_KEY_ID = os.getenv('STATIC_ACCESS_KEY_ID')
AWS_SECRET_ACCESS_KEY = os.getenv('STATIC_SECRET_KEY')
AWS_STATIC_BUCKET_NAME = os.getenv('STATIC_BUCKET_NAME')
AWS_MEDIA_BUCKET_NAME = os.getenv('MEDIA_BUCKET_NAME')
AWS_S3_ENDPOINT_URL = os.getenv('STATIC_ENDPOINT_URL')
AWS_S3_OBJECT_ParaMETERS = {
    'CacheControl': 'max-age=86400',}
AWS_LOCATION = 'static'
AWS_DEFAULT_ACL = 'public-read'
STATIC_URL = '{}/{}/'.format(AWS_S3_ENDPOINT_URL,AWS_LOCATION)

媒体存储

class MediaStorage(S3Boto3Storage):
    bucket_name = settings.AWS_MEDIA_BUCKET_NAME
    custom_domain = '{}.s3.amazonaws.com'.format(bucket_name)
    location = "media"

感谢您的任何建议!不幸的是,我在日志中找不到任何有用的信息。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)