Raj*_*Raj 1 javascript amazon-s3 amazon-web-services node.js
我有一个 S3 存储桶,其中包含包含文件的文件夹和子文件夹,我试图列出根目录中的所有文件夹名称。我不想列出子文件夹和文件。
ex:
Test/Test1
Test/Test2
Test/Test3
Test/Test4
etc...
Run Code Online (Sandbox Code Playgroud)
我尝试过以下代码,其中列出了根目录中的所有键
getListAllKeys(rootDirectory) {
const containedEntities = {
files: [],
directories: []
};
const params = {
Bucket: this.bucket,
Prefix: Test/,
Delimiter: Test/
};
return new Promise((resolve, reject) => this._listAllKeys(
resolve,
reject,
params,
containedEntities
));
}
_listAllKeys(resolve, reject, params, containedEntities) {
this.s3.listObjectsV2(params).promise()
.then(({
Contents, IsTruncated, NextContinuationToken,
}) => {
// filter files and directories
Contents.forEach((item) => {
containedEntities[item.Key.endsWith('/') ? 'directories' : 'files'].push(item);
});
// fetch further info if response is truncated
if (IsTruncated) {
this._listAllKeys(
resolve,
reject,
Object.assign(params, { ContinuationToken: NextContinuationToken }),
containedEntities
);
} else {
resolve(containedEntities);
}
})
.catch(reject);
}
Run Code Online (Sandbox Code Playgroud)
我正在使用 AWS-SDK 包。请让我知道如何仅列出主文件夹
要获取目录列表,请指定Delimiter='/'(不指定前缀)。
顶级(根)级别的目录列表将在名为 的列表中返回CommonPrefixes。
通过指定前缀,它也适用于子文件夹。
| 归档时间: |
|
| 查看次数: |
1028 次 |
| 最近记录: |