// Create a reference under which you want to list
var listRef = storageRef.child('files/uid');
// Find all the prefixes and items.
listRef.listAll().then(function(res) {
res.prefixes.forEach(function(folderRef) {
// All the prefixes under listRef.
// You may call listAll() recursively on them.
});
res.items.forEach(function(itemRef) {
// All the items under listRef.
});
}).catch(function(error) {
// Uh-oh, an error occurred!
});
3条答案
按热度按时间vuv7lop31#
文档展示了使用提供的节点SDK列出存储桶中所有文件的示例。您将需要使用Bucket对象的getFiles()方法。
字符串
nwnhqdif2#
下面的解决方案适用于客户端。对于每个问题的Node环境,请参考Doug史蒂文森的回答
您需要使用
listAll()
方法来获取所有文件名。下面是官方文档中的一个示例
字符串
我建议使用
list
方法而不是listAll
,因为后者将所有结果存储在内存中,而前者使用分页。Cloud Storage Documentation
kmb7vmvb3#
遇到这个线程,没有一个解决方案为我工作,我不得不使用流来获得我想要的,然后写我自己的脚本,并把它放在一个要点,以防它帮助别人。
https://gist.github.com/JonCatmull/fa55298fd55a565f246ab2e93c5c0e4b
我的脚本只是将超过一定大小的所有文件记录到一个文件中,但如果需要,您可以将它们推入一个数组中,然后对它们执行操作。
字符串
如何设置
安装
安装gcloud https://cloud.google.com/sdk/docs/install
登录并设置项目
型
安装脚本依赖项
型
运行
使用ts-node运行并传入bucket名称和最大文件大小(例如10 MB)
型
将值保存到控制台,并创建一个包含路径、url和大小的large-files.log文件。