Amazon WS S3:次のエラーメッセージが表示されます:「アクセスしようとしているバケットは、指定されたエンドポイントを使用してアドレス指定する必要があります。」[複製]

Jan 04 2021

正しいエンドポイントを使用してバケットをアドレス指定するにはどうすればよいですか?Djangoを使用してアプリを作成しています。

これに対する解決策を別の言語で見ましたが、理解できませんでした。Pythonの解決策はありますか?

settings.py

STATIC_URL = '/static/'

MEDIA_ROOT =  os.path.join(BASE_DIR, 'static') 
MEDIA_URL = '/media/'

AWS_ACCESS_KEY_ID = '****************'
AWS_SECRET_ACCESS_KEY = '*******************'
AWS_STORAGE_BUCKET_NAME = '*************+'

AWS_S3_FILE_OVERWRITE = False
AWS_DEFAULT_ACL = None
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'

画像のURLは次のように始まります。 https://s3.amazonaws.com/nostalg.ia/media/(...)

すべてのチュートリアルで見られるように、画像の宛先から開始する必要がある場合。

回答

AsriBadlah Jan 04 2021 at 03:50

リクエストを行うには、地域のエンドポイントを使用する必要があります。地域エンドポイントの一般的な構文は次のとおりです。

protocol://service-code.region-code.amazonaws.com

例えば:

https://mybucket.s3-ap-southeast-2.amazonaws.com/