Heroku にデプロイされている Django(3) プロジェクトに取り組んでいます。Django ストレージを使用して AWS S3 に接続し、静的ファイルとメディア ファイルを S3 バケットにアップロードしようとしています。
注:私はたくさんグーグルで検索し、見つけたすべての解決策を試しましたが、私の問題を解決するものは何もないので、これを重複としてマークしないでください!
パブリック アクセスを有効にして S3 バケットを作成し、次の CORS 構成を追加しました。
[
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"GET",
"PUT",
"POST"
],
"AllowedOrigins": [
"*"
],
"ExposeHeaders": []
}
]
また、プログラムによるアクセス権を持つ IAM ユーザーを作成し、次の権限を付与します。S3FullAccess
そして、これが私が持っているものです**settings.py**
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('AWS_STORAGE_BUCKET_NAME')
AWS_QUERYSTRING_AUTH = False
AWS_S3_FILE_OVERWRITE = False
AWS_DEFAULT_ACL = None
AWS_S3_REGION_NAME = 'us-east-1'
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3StaticStorage'
バケットからファイルを直接開くと、ブラウザでファイルを見ることができますが、サイト (pythonist.org) をロードすると、これらのファイルは次のように返されます。403 forbidden
ファイルに対するブラウザーの [ネットワーク] タブからの応答は次のとおりです。
Summary
URL: https://s3.amazonaws.com/pythonist.org/css/normalize.css
Status: 403 Forbidden
Source: Network
Initiator:
pythonist.org:18
ここで何が問題なのかわかりません。よろしくお願いします。