app*_*ppy 9 amazon-s3 node.js aws-sdk aws-sdk-nodejs
我正在尝试使用查询字符串获取S3存储桶中特定文件夹下的对象列表,该查询字符串将文件夹名称作为参数,并使用Node JS aws-sdk列出与该特定文件夹匹配的所有对象
例如:http:// localhost:3000 / listobjects?foldername = xxx
请提出如何实现此功能的建议。
Abh*_*ain 12
您可以在调用aws-sdk getObject或时指定前缀listObjectsV2
var params = {
Bucket: 'STRING_VALUE', /* required */
Prefix: 'STRING_VALUE' // Can be your folder name
};
s3.listObjectsV2(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
Run Code Online (Sandbox Code Playgroud)
顺便说一句,S3没有文件夹。它只是一个前缀。它显示了文件夹结构,使您也可以轻松浏览和查看文件。
从循环中的 index = 1 开始排除文件夹本身+ 只列出文件夹中的文件:
const s3 = new AWS.S3();
const params = {
Bucket: bucketname,
Delimiter: '/',
Prefix: s3Folder + '/'
};
const data = await s3.listObjects(params).promise();
for (let index = 1; index < data['Contents'].length; index++) {
console.log(data['Contents'][index]['Key'])
}
Run Code Online (Sandbox Code Playgroud)
您忘了将文件夹提到s3存储桶中,反正这段代码对我有用
var params = {
Bucket:Bucket_Name,
Delimiter: '/',
Prefix: 'foldername/'
};
s3Bucket.listObjects(params, function(err, data) {
if (err) {
return 'There was an error viewing your album: ' + err.message
}else{
console.log(data.Contents,"<<<all content");
data.Contents.forEach(function(obj,index){
console.log(obj.Key,"<<<file path")
})
}
})
Run Code Online (Sandbox Code Playgroud)
AWS s3 最多提供 1000 个文件列表,以便使用此方法获得超过 1000 个计数
export function getListingS3(prefix) {
return new Promise((resolve, reject) => {
try {
let params = {
Bucket: AWS_S3.BUCKET_NAME,
MaxKeys: 1000,
Prefix: prefix,
Delimiter: prefix
};
const allKeys = [];
listAllKeys();
function listAllKeys() {
s3.listObjectsV2(params, function (err, data) {
if (err) {
reject(err)
} else {
var contents = data.Contents;
contents.forEach(function (content) {
allKeys.push(content.Key);
});
if (data.IsTruncated) {
params.ContinuationToken = data.NextContinuationToken;
console.log("get further list...");
listAllKeys();
} else {
resolve(allKeys);
}
}
});
}
} catch (e) {
reject(e);
}
});
}```
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11162 次 |
| 最近记录: |