Pro*_*eus 3 python boto amazon-web-services python-3.x boto3
我想img在我的私有桶public中创建一个已经存在的文件夹.我正在使用Boto3.我只想公开这个文件夹,而不是使用脚本.
这就是我目前正在连接到水桶以及我有多远......
ACCESS_KEY_ID = 'xxxxx'
ACCESS_KEY_SECRET = 'xxxx'
bucket_name = 'mybucket'
sourceDir = "../../docs/buildHTML/html/"
destDir = ''
r = boto3.setup_default_session(region_name='eu-west-1')
s3 = boto3.resource('s3', aws_access_key_id=ACCESS_KEY_ID, aws_secret_access_key=ACCESS_KEY_SECRET)
bucket = s3.Bucket(bucket_name)
Run Code Online (Sandbox Code Playgroud)
所以我有水桶,这是有效的.我现在如何使img已存在的文件夹公开?
您需要向存储桶添加策略,如下所示:
{
"Version":"2012-10-17",
"Statement":[
{
"Sid":"PublicReadImages",
"Effect":"Allow",
"Principal": "*",
"Action":["s3:GetObject"],
"Resource":["arn:aws:s3:::mybucket/abc/img/*"]
}
]
}
Run Code Online (Sandbox Code Playgroud)
您可以通过AWS控制台或任何SDK执行此操作.在boto3中,我认为你这样做:
bucket = s3.Bucket(bucket_name)
response = bucket.put(
Policy = '<policy string here>'
)
Run Code Online (Sandbox Code Playgroud)