是的,我知道。 s3 存储上没有文件夹概念。但我真的很想用 node.js 从 s3 中删除一个特定的文件夹。我尝试了两种解决方案,但都没有奏效。我的代码如下: 解决方案 1:直接删除文件夹。
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));
});
实际上,我在文件夹 2 下有很多文件。如果我定义这样的键,我可以从文件夹 2 中删除单个文件:var key=‘level/folder1/folder2/file1.txt’,但是当我删除文件夹时它不起作用(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 上的文件夹?
原文由 user3034559 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以使用 aws-sdk 模块来删除文件夹。因为只有在文件夹为空时才能删除,所以应该先删除里面的文件。我正在这样做: