はい、わかっています。 s3ストレージにはフォルダ概念はありません。私は本当にs3からnode.jsで特定のフォルダを削除したい私は2つの解決策を試しましたが、どちらもうまくいかなかった。 私のコードは以下の通りです。 解決策1: フォルダを直接削除しています。node.jsでs3のフォルダを削除するにはどうしたらいいですか?
var key='level/folder1/folder2/';
var strReturn;
var params = {Bucket: MyBucket};
var s3 = new AWS.S3(params);
s3.client.listObjects({
Bucket: MyBucket,
Key: key
}, function (err, data) {
if(err){
strReturn="{\"status\":\"1\"}";
}else{
strReturn=+"{\"status\":\"0\"}";
}
res.send(returnJson);
console.log('error:'+err+' data:'+JSON.stringify(data));
});
実際、私はfolder2の下にたくさんのファイルを持っています。var key = 'level/folder1/folder2/file1.txt'のようにキーを定義すると、folder2から1つのファイルを削除できますが、フォルダを削除すると機能しませんでした(key = 'level/folder1/folder2/')。 解決方法2: このファイルまたはフォルダをs3にアップロードしたときにオブジェクトに有効期限を設定しようとしました。コードは次のとおりです。
s3.client.putObject({
Bucket: Camera_Bucket,
Key: key,
ACL:'public-read',
Expires: 60
}
しかし、それもありませんでした。アップロードが終了したら、そのファイルのプロパティを確認しました。それは何も値が有効期限にあった示した:
Expiry Date:none
Expiration Rule:N/A
どのように私はNode.jsのとS3上のフォルダを削除することができますか?
は、内のすべてのオブジェクトを削除します。 "folder" – datasage
私は 'folder'の中にたくさんのファイルを持っています。私はそのフォルダを削除したかったのです。すべてのファイルをループして削除すると、完了までに時間がかかります。 – user3034559
このフォルダは、その "フォルダ"名を共有するパスのグループとしてのみ存在します。すべてのオブジェクトを削除すると、「フォルダ」は存在しなくなります。たくさんのファイルを削除する場合、これにはしばらく時間がかかることがあります。残りのAPIには一度に1000個までのファイルを削除するコマンドがあり、node.js apiがこれを公開するかどうかはわかりません。 – datasage