我有一個 S3 存盤桶,其中包含包含檔案的檔案夾和子檔案夾,我正在嘗試列出根目錄中的所有檔案夾名稱。我不想列出子檔案夾和檔案。
ex:
Test/Test1
Test/Test2
Test/Test3
Test/Test4
etc...
我嘗試了以下代碼,其中列出了根目錄中的所有鍵
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);
}
我正在使用 AWS-SDK 包。請讓我知道如何僅列出主要檔案夾
uj5u.com熱心網友回復:
要獲取目錄串列,請指定Delimiter='/'(不指定前綴)。
頂級(根)級別的目錄串列將在名為CommonPrefixes.
通過指定前綴,它也適用于子檔案夾。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/515194.html
