As you know, S3 is a <https://docs.aws.amazon.com/...
# aws
e
As you know, S3 is a "global" service; for example, if I arbitrarily pick
eu-west-3
aka Paris region which I've never used before,
aws s3 --region eu-west-3 ls
can enumerate all my buckets from all AWS regions. This Python script does the same:
Copy code
import logging
import pprint

import boto3
import boto3.session


boto3.set_stream_logger('', 0)
s = boto3.session.Session(region_name='eu-west-3')
s3 = s.client('s3')
pprint.pprint(s3.list_buckets()['Buckets'], width=200)
However when I ran
GetBucket.Invoke(GetBucketInvokeArgs(Bucket="my-bucket"))
(I'm using .NET & AWS Classic provider) I got this error
Copy code
Failed getting S3 bucket (my-bucket): BucketRegionError: incorrect region, the bucket is not in 'ap-northeast-1' region at endpoint '', bucket is in 'ap-southeast-1' region
For now, I'm going to set up a
Provider
object for each cross-regional reference to an S3 bucket, as I believe that will unblock me. But I can't help but feel that this is an unnecessary chore. Did I overlook anything?
l
S3 has regional endpoints, which are much faster than the global one but can see only regional buckets. I think there's an option for turn on and off regional endpoints? I can't remember what it is though.