我的问题与此how to get a list of files in a google cloud storage folder using node js相似。
[仅尝试获取顶级对象。我正在尝试按照nodejs storage samples files.js进行操作,当我尝试使用“前缀”和“分隔符”的不同组合时,我很难获得顶级对象。我尝试使用前缀“ /”和分隔符“ /”。我尝试使用前缀“ /”和分隔符“ /”。我尝试了没有分隔符的前缀“ /”。似乎没有任何办法让我仅获得顶层对象的列表。我似乎总是在整个存储桶中获取所有文件。关于前缀和分隔符可能使用哪些正确参数的任何想法?还有其他我不知道的选项可以帮助您吗?
更具体一点,考虑到以下斑点:
我只想要
我尝试过的几件事:
前缀:“”,分隔符:“”,结果:
前缀:“”,分隔符:“ /”,结果:
前缀:“ /”,分隔符:“”,结果:
前缀:“ /”,分隔符:“ /”,结果:
前缀:“ folder1 /”,分隔符:“”,结果:
...正如我所期望的;但是再次,我不能弄清楚前缀和分隔符的正确组合,只是得到我想要的两个顶部对象结果:
我认为我终于找到了答案。答案是在其他网站上获取其文档。具体为this site和this page (for Bucket.getFiles())。他们的示例显示了具有(err,文件,nextQuery,apiResponse)参数的回调。这很奇怪,因为即使这个站点也没有提及nextQuery和apiResponse作为GetFilesCallback的参数。
我确实想使用async / await,然后尝试/捕获我的应用程序,因此以getFiles页面上的代码示例为例,我可以推断出这样做可以得到所需的东西:
const [files, nextQuery, apiResponse] = await storage.bucket(bucketName).getFiles({autoPaginate: false, delimiter: "/", prefix: ""});
然后,我个人发现“ apiResponse”中的数据比文件中的有用得多。我正在寻找的是apiResponse.items
和apiResponse.prefixes
。
我很惊讶,没有文档显示apiResponse
应该是什么样,GetFilesCallback页面甚至都没有将其显示为可能的参数。无论如何,我都能找到想要的东西。我认为对于我的用例,我将比apiResponse
参数更多地使用files
回调参数。