所以我一直在stackoverflow中使用几个不同的教程,他们似乎都出现了同样的错误:403权限被拒绝 .
我在ubuntu 14.04上使用python2.7和boto .
下面是代码(没有密钥和存储桶名称),我想知道为什么我被拒绝访问自己的存储桶 .
我在IAM中创建了一个具有S3完全访问权限的用户,并在存储桶上设置了权限以允许“Everyone”上传/下载 . 我正在使用正确的密钥,因为我将它们复制并粘贴到代码中 .
这可能与存储桶策略有关吗?或者有什么我不知道的东西?我是新手,只需要在S3上上传和下载文本文件 .
import boto
from boto.s3.key import Key
import boto.s3.connection
AWS_ACCESS_KEY_ID = ''
AWS_SECRET_ACCESS_KEY = ''
Bucketname = ''
conn = boto.connect_s3(aws_access_key_id=AWS_ACCESS_KEY_ID,
aws_secret_access_key=AWS_SECRET_ACCESS_KEY )
bucket = conn.get_bucket(Bucketname)
1 回答
评论很有帮助,谢谢FirebladeDan . 所以我创建了一个具有Admin Access和完全S3访问权限的用户 . 这一切都是在IAM完成的 . 现在在存储桶属性中,我向Grantee“Everyone”添加了一个权限集,允许他们上传/下载和列出 . 现在最后一步是添加存储桶策略 . 我不认为我需要这样做,所以我发布在这里 .
我错了 . 所以这就是我用过的东西 . 注意:这允许我上传到S3,但是大多数时候set_contents_from_filename()只上传 Headers ,并不总是上传文件 . 这可能是我的代码中的错误,但如果您遇到相同的事情,那么此策略可能需要某种额外的权限 .