2017-08-17 11 views
1
>>> 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マシンからファイルを削除できます。 エラーは次のとおりです。pythonを使用してS3バケットからファイルを削除しようとしていますが、ファイルを削除できません。

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 

>

答えて

0

あなたのコードは完全に罰金です。 (私は自分のバケツでテストしましたが、うまくいきました)

エラーメッセージはAccess Deniedです。つまり、AWS資格情報(おそらくあなたのIAMユーザー)に関連付けられているエンティティは、そのオブジェクトの削除を許可されていません。または、おそらく、そのバケツ内のオブジェクト。

チェック地図:あなたのIAMユーザー(またはあなたが使用していた資格情報に関連付けられているものは何でもするエンティティ)の方針で

  • ルック
  • バケットポリシーを見donebox-staticにバケット

これらのポリシーを両方ともチェックして、オブジェクトを削除できない理由を判断してください。覚えておいてください - デフォルトでは何もすることができませんので、があなたにDeleteObject許可を与えるポリシーを探しています。

+0

私は別の地域で別のバケットで試してみると、同じコードが私のために働く理由は分かりません。 –

関連する問題