【问题标题】:Correct way to use Google Cloud Storage SDK谷歌云存储SDK的正确使用方法
【发布时间】:2019-01-25 06:29:53
【问题描述】:

我正在尝试使用 Scala 使用 Google Cloud Storage SDK 列出我的 GCP 存储桶中的文件。

例如,我有一个名为bucket-1 的存储桶,其中有一个文件夹folder-1,我想列出folder-1 中的所有文件。

我尝试使用下面的代码,但在 folder-1 内没有返回任何内容

val files = storage.list("bucket-1",BlobListOption.currentDirectory(), BlobListOption.prefix("folder-1"))

问题是folder-1 中的对象/文件没有任何设置的前缀,因此我无法在BlobListOption.prefix 调用中添加它。

【问题讨论】:

    标签: google-cloud-platform google-cloud-storage


    【解决方案1】:

    要列出目录folder-1 中的所有文件,您的前缀应为folder-1/,并且您应指定/ 的分隔符。

    对象将在返回的items 数组中。在 prefixes 数组中返回目录(不存在并被模拟)。

    【讨论】:

    • 我尝试将前缀设为folder-1/,但请您帮我解决如何传递分隔符选项。我没有看到任何这样的参数。
    • 这里是 Google REST API 的链接,其中显示了各种参数,包括 delimitercloud.google.com/storage/docs/json_api/v1/objects/list 然后在您正在使用的库中查找该功能。
    • 嘿,谢谢。但我正在使用 SDK,在那里找不到任何这样的选项。
    • 对于您的代码,您是否将folder-1 更改为folder-1/?如果您查看currentDirectory() API,它看起来像是自动处理分隔符。 googleapis.github.io/google-cloud-java/google-cloud-clients/…
    • 是的,我尝试使用folder-1/ ,但它没有返回文件夹内的任何内容。它只返回 1 个项目,即 folder-1 本身。另外我正在使用iterateAll() 方法循环所有返回的文件。
    猜你喜欢
    • 2020-09-10
    • 1970-01-01
    • 2012-03-02
    • 2016-10-12
    • 1970-01-01
    • 2015-06-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多