1

すべてのDjangoメディアファイル(管理パネルからアップロード)をAmazonS3にアップロードしようとしています。したがって、設定ファイルは次のようになります。

INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'tastypie',
'core',
'advertisment',
'storages',

)

  DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
  AWS_ACCESS_KEY_ID = 'xxx' 
  AWS_SECRET_ACCESS_KEY = 'xxx'
  AWS_STORAGE_BUCKET_NAME = 'media'
  MEDIA_URL = 'https://s3.amazonaws.com/%s/' % AWS_STORAGE_BUCKET_NAME

管理パネルからファイルをアップロードしようとすると、次のエラーが発生します。

S3ResponseError: 403 Forbidden

私はこの答えをチェックしましたが、それでも助けにはなりませんでした

4

1 に答える 1

2

django-storageはbotoに依存しているため、botoをインストールしましたか?

次に、settings.pyに以下を追加する必要があります

import os

AWS_ACCESS_KEY_ID = os.environ.get('AWS_ACCESS_KEY_ID')
AWS_SECRET_ACCESS_KEY = os.environ.get('AWS_SECRET_ACCESS_KEY')
AWS_STORAGE_BUCKET_NAME = os.environ.get('S3_BUCKET_NAME')

STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'

STATIC_URL = 'http://' + AWS_STORAGE_BUCKET_NAME + '.s3.amazonaws.com/'
ADMIN_MEDIA_PREFIX = STATIC_URL + 'admin/'

その後、キャッシュはAWSS3自体に保存されます。

お役に立てば幸いです

注:セキュリティ上の理由から、AWS_ACCESS_KEY_IDとAWS_SECRET_ACCESS_KEYを、setting.pyに直接書き留めるのではなく、環境変数として追加することをお勧めします。

于 2012-10-15T18:59:19.237 に答える