2

正しく表示されていないファイルを含むすべてのファイルは、Amazonのバケットにあります。私が見つけた、表示されない2つの画像は、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
4

1 に答える 1

5

これは、django-storages の現在の開発バージョンでは修正されているようです。詳しくは121号をご覧ください。

簡単な回避策:

  1. django-storagesrequirements.txt を次のように置き換えます-e hg+https://bitbucket.org/david/django-storages@e27c8b61ab57e5afaf21cccfee005c980d89480f#egg=django_storages-dev
  2. 設定で、 を追加しAWS_QUERYSTRING_AUTH = Falseます。この設定の結果、AWS auth スタッフがすべての URL に含まれるわけではありません。これは、S3 バケット内のすべてのファイルが公開されている場合にのみ実行してください。
于 2013-09-09T12:30:24.810 に答える