2015-12-04 46 views
0

我有一个指向S3中的文件的网址(格式为https://s3.amazonaws.com/..。),我希望用户可以下载它,因此我在AWS控制台中设置了S3仪表板的权限但是我知道,只要文件被重新写入,文件就会被重置(文件名保持不变)。如何自动化S3 http url权限授予

有没有办法在文件创建后自动设置权限?我看着博托图书馆,但无法弄清楚。提前致谢!

+0

您是否可以控制文件如何写入S3? – garnaat

+0

是的,我在做@garnaat。 – kee

+0

请显示您用于上传的代码。 – tedder42

回答

1

这是一个非常常见的操作。

With the Boto library, you can set an ACL。假设你有一个关键:

key.set_acl('public-read') 

如果你没有钥匙,你需要有一个铲斗:

bucket.set_acl('public-read', 'path/to/key') 

可以使用非罐装的ACL也。文档链接到那。

在boto3中,您还可以设置ACL。

Bucket syntax:

s3client.put_bucket_acl(ACL='public-read', Bucket='bucketname') 

Key syntax:

s3client.put_object_acl(ACL='public-read', Bucket='bucketname', Key='path/to/key') 

非罐装的ACL是boto3更容易一些。