>>> import boto
>>> s3 = boto.connect_s3('<access_key>', '<secret_key>')
>>> bucket = s3.lookup('donebox-static')
>>> key = bucket.new_key('testkey')
>>> key.set_contents_from_string('This is a test')
>>> key.exists()
>>> key.delete()
删除时,我收到了以下错误。我正在使用Linux机器,但我可以从Windows机器上删除文件。 错误是:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/site-packages/boto-2.48.0-py2.7.egg/boto/s3/key.py", line 558, in delete
headers=headers)
File "/usr/lib/python2.7/site-packages/boto-2.48.0-py2.7.egg/boto/s3/bucket.py", line 762, in delete_key
query_args_l=None)
File "/usr/lib/python2.7/site-packages/boto-2.48.0-py2.7.egg/boto/s3/bucket.py", line 781, in _delete_key_internal
response.reason, body)
boto.exception.S3ResponseError: S3ResponseError: 403 Forbidden
<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>6CF28CE4F8227FAE</RequestId><HostId>mrS5DIDHvXgweWSlwmQYVE0H05jsnepXd+3PiMqHcjXhWPkfo8ibeWA9rBcm7fKkdAO2f/fUTjo=</HostId></Error
&GT;
答案 0 :(得分:0)
你的代码非常好。 (我在自己的水桶上测试过,效果很好。)
错误消息为Access Denied
。这意味着不允许与您的AWS凭证(很可能是您的IAM用户)关联的实体删除该对象。或者,很可能是该桶中的任何对象。
要检查的事项:
donebox-static
存储区检查这两个策略以确定不允许您删除对象的原因。请注意 - 默认情况下,您不能执行任何操作,因此您正在寻找确实授予您DeleteObject
权限的政策。