默认情况下,当您get_bucket
在boto中进行调用时,它会通过HEAD
对存储桶URL执行请求来尝试验证您是否确实有权访问该存储桶。在这种情况下,您不希望boto那样做,因为您无权访问存储桶本身。因此,请执行以下操作:
bucket = conn.get_bucket('my-bucket-url', validate=False)
然后您应该能够执行以下操作以列出对象:
for key in bucket.list(prefix='dir-in-bucket'):
<do something>
如果仍然收到403 Errror,请尝试在前缀末尾添加斜杠。
for key in bucket.list(prefix='dir-in-bucket/'):
<do something>
:此答案是关于boto版本2模块的,该模块现在已过时。目前(2020年),boto3是用于AWS的标准模块。有关更多信息,请参阅此问题:AWS boto和boto3有什么区别