2016-06-28 7 views
2

Amazon S3ストレージからイメージを削除しようとしていますが、削除されません。Amazon S3ストレージからイメージを削除

私は、次のコードを使用しています:

var s3 = AWS.S3(awsCredentials); 
s3.deleteObject({ 
    Bucket: MY_BUCKET, 
    Key: myKey 
},function (err,data){}) 

を私は削除したい画像がまだ残っています。

私もs3.deleteObjects機能を使用しましたが、削除されたオブジェクト名が返されましたが、ストレージを確認してもまだ画像が残っていました。

+0

version3d – error2007s

+0

versionId = nullでバージョン管理を有効にした場合、すべての画像でバージョン管理が有効になっていないことを意味しますか? –

+0

を削除した後、バージョンに削除マーカーは追加されませんが、まだNULLです –

答えて

3

この方法でキーを使用する必要があります。削除するファイルの名前だけでなく、そのキーを使用する必要があります。

var s3 = AWS.S3(awsCredentials); 
s3.deleteObject({ 
    Bucket: MY_BUCKET, 
    Key: 'some/subfolders/nameofthefile1.extension' 
},function (err,data){}) 
+2

実際には、 '/some/subfolders/nameofthefile1.extension'という形式のキーに使用していましたが、先頭の '/'は不要です。 –

+0

不必要ではありませんが、間違っています。 S3の規則では、バケットのルートは空の文字列であり、 '/'ではありません。フォローアップの質問は、存在しないオブジェクトを削除しようとしたときに例外が発生しなかった理由です。答えは、あなたが哲学的であると感じているときに最もよく考えられていることです。「DELETE」は等冪であるということです。 'DELETE/foo HTTP/1.1'の後には/ fooはありません。それが前に存在したかどうかに関わらず、要求の後には必ず存在しないため、あなたが許可している削除は、オブジェクトが存在しなくても常に成功します。 –

関連する問題