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