私は 3 日間立ち往生しましたが、最終的に、大量のブログと回答を読んだ後、Amazon AWS S3 バケットを構成することができました.
AWS側
私はあなたがすでに持っていると仮定しています
- s3-bucket を作成しました
- IAM でユーザーを作成しました
手順
CORS 設定の構成
バケット > 権限 > CORS 構成
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>```
バケット ポリシーを生成する
バケット > 権限 > バケット ポリシー
これに似ているはずです
{
"Version": "2012-10-17",
"Id": "Policy1602480700663",
"Statement": [
{
"Sid": "Stmt1602480694902",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::harshit-portfolio-bucket/*"
}
]
}
PS: Bucket policy should say `public` after this
- アクセス制御リストの構成
バケット > 権限 > アクセス制御リスト
パブリックアクセスを与える
PS: アクセス制御リストはpublic
この後に言うべきです
- 公開アクセスのブロックを解除
バケット > 権限 > パブリック アクセスのブロック
すべてのオプションを編集してオフにする
**ちなみに、django で作業している場合settings.py
は、プロジェクトのファイルに次の行を追加してください **
#S3 BUCKETS CONFIG
AWS_ACCESS_KEY_ID = '****not to be shared*****'
AWS_SECRET_ACCESS_KEY = '*****not to be shared******'
AWS_STORAGE_BUCKET_NAME = 'your-bucket-name'
AWS_S3_FILE_OVERWRITE = False
AWS_DEFAULT_ACL = None
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
# look for files first in aws
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
# In India these settings work
AWS_S3_REGION_NAME = "ap-south-1"
AWS_S3_SIGNATURE_VERSION = "s3v4"