gpt4 book ai didi

node.js - 使用 Node js aws-sdk 检查 S3 上是否存在文件夹

转载 作者:太空宇宙 更新时间:2023-11-04 00:04:56 25 4
gpt4 key购买 nike

首先,我知道不存在文件夹这样的东西,但是,我使用这个术语只是为了简单起见。现在我的桶里有很多东西。对于某些文件夹,我可以使用 getObject 来查找它们是否存在,但对于大多数文件夹,当我清楚地看到它们存在时,我会收到错误 No such key 。我还想说,我什至尝试过 headObject、listObjectV2,但没有成功。

this is my params object
{
Bucket: bucket //bucket is defined in the program
Key: folder // defined in the program above
//example key - abc-1-1/00000N/30/2018.10.7.8/
//inside this folder are multiple files
}

目标是查找该文件夹是否存在,并据此进行一些处理。我看到这个问题的很多答案都建议 headObject、getObjects 等,但似乎都不起作用

这是我的 getObjects 代码片段

params = {
Bucket: bucket,
Key: folder
}
s3.getObject(params, function (err, found) {

if (err){
console.log('bucket is'+bucket);
..........
.....
}
else{
....
}
..
});

最佳答案

我终于找到了解决这种情况的方法。如果您的应用程序要求您检查特定对象(“文件夹”)是否存在,并在该对象(“文件夹”)实际存在时继续操作,则可以使用此解决方案。我相信 s3.getObject 或 s3.headObject 的工作方式有问题,无论如何,这里是解决方案。

1) 使用 s3.listObjectsV2 方法。

2) 检查响应的内容字段。如果它为空,则您提供的前缀不存在。这是代码片段

s3.listObjectsV2(params, function (err, found) {

if (err){
console.log(err);
errJson = {
'status': -1,
'message': 'Error while trying to list files'
};
callback(errJson);

}
else {

if (found.Contents.length === 0) {

errJson = {
'status': 0,
'message': 'Either the files are not present at s3 or the folder is incorrect '
}
callback(errJson);
}
else{
.....
}
....
});

关于node.js - 使用 Node js aws-sdk 检查 S3 上是否存在文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52757849/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com