我正在使用Python和tinys3将文件写入S3,但它不起作用。这是我的代码:
import tinys3
conn = tinys3.Connection('xxxxxxx','xxxxxxxx',tls=True)
f = open('testing_s3.txt','rb')
print conn.upload('testing_data/testing_s3.txt',f,'testing-bucket')
print conn.get('testing_data/testing_s3.txt','testing-bucket')
从而得到输出:
<Response [301]>
<Response [301]>
当我尝试指定端点时,得到:
requests.exceptions.HTTPError: 403 Client Error: Forbidden
知道我做错了什么吗?
编辑:当我尝试使用boto时,它工作了,所以问题不在访问密钥或密钥中。
我终于明白了。下面是正确的代码:
您必须使用region端点,而不是s3.amazonaws.com。您可以从这里查找区域终结点:http://docs.aws.amazon.com/general/latest/gr/rande.html。在“Amazon简单存储服务(S3)”标题下查看
我从这篇文章中得到了这个想法:https://github.com/smore-inc/tinys3/issues/5
如果使用IAM用户,则需要允许“s3:PutObjectAcl”操作。
不知道为什么,但这段代码对我不起作用。 我已经切换到boto,它只上传了一次文件。
相关问题 更多 >
编程相关推荐