使用Django和s3boto,一些管理图像(icon_clock.gif&icon_calenda

2019-07-20 18:46发布

所有文件,包括那些无法正常显示,存在于我的亚马逊桶。 只有两个图像我发现,不显示是icon_clock.gif和icon_calendar.gif。 其他一切工作正常。

当我检查破碎的形象的链接位置,我得到这样的:

 https://my_bucket_name.s3.amazonaws.com/admin?Signature=MY_SIGNATURE&AWSAccessKeyId=MY_KEYimg/icon_clock.gif

正如你所看到的,查询参数没有被添加到尾部,而是给中间环节。

以下是相关设置:

import os.path

ROOT_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
PROJECT_NAME = os.path.basename(ROOT_DIR)

def ABS_PATH(*args):
    return os.path.join(ROOT_DIR, *args)

STATIC_ROOT = ABS_PATH('static')

AWS_ACCESS_KEY_ID = 'MY_KEY'
AWS_SECRET_ACCESS_KEY = 'MY_SECRET_ACCESS_KEY'

AWS_STORAGE_BUCKET_NAME = 'my_bucket_name'
STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
S3_URL = 'http://%s.s3.amazonaws.com/' % AWS_STORAGE_BUCKET_NAME
STATIC_URL = S3_URL

Answer 1:

这似乎是固定在Django的存储器的当前的开发版本。 参见问题121获取更多信息。

快速解决方法步骤:

  1. 更换django-storages在你的requirements.txt与-e hg+https://bitbucket.org/david/django-storages@e27c8b61ab57e5afaf21cccfee005c980d89480f#egg=django_storages-dev
  2. 在你的设置,添加AWS_QUERYSTRING_AUTH = False 。 此设置的结果是AWS权威性的东西是不包含在每个URL。 如果您的S3存储桶中的所有文件都是公开的,才能这么做。


文章来源: Using Django and s3boto, some admin images (icon_clock.gif & icon_calendar.gif) don't display