【问题标题】:File listing from google cloud storage来自谷歌云存储的文件列表
【发布时间】:2013-01-29 17:54:18
【问题描述】:

对于我正在做的一个项目,我会将文件存储在 Google 的云存储中,并正在构建一个 Web 应用程序来连接这些文件。我希望我的应用程序显示存储在我的存储桶中的文件列表(或对象可能是适当的名称)。我对网络开发和谷歌 API 完全陌生。

我一直在研究如何做到这一点,并找到了这段代码......

Storage storage = new Storage(httpTransport, jsonFactory, credential);
    ObjectsList list = storage.objects().list("bucket-name").execute();
    for (Object obj : list.getItems()) {

      }

并声明使用 AppIdentityCredential。

任何关于如何将上述代码与 AppIdentityCredential 一起使用的建议或关于使用 java 列出存储在存储桶中的文件的任何建议将不胜感激。

【问题讨论】:

  • 您是否能够了解如何使用上述方法列出对象。我真的需要让这个工作。任何帮助表示赞赏。谢谢!!

标签: java google-app-engine servlets google-cloud-storage


【解决方案1】:

This 应该可以帮到你。

请记住,您需要 Cloud Storage API 而不是 GAE API(仅供参考:)。您可以在此处阅读该 API -> https://developers.google.com/storage/docs/json_api/v1/json-api-java-samples(JSON,还有一个 XML API)

【讨论】:

  • 链接已失效。有新的想法吗?
【解决方案2】:

以下要点可以列出 Google Cloud Storage 存储桶中的所有文件/文件夹:

https://gist.github.com/hkarakose/d8f9ff78f7deb692e5302e06e8612ca6

您需要以下 maven 依赖项来运行代码:

<dependency>
  <groupId>com.google.cloud</groupId>
  <artifactId>google-cloud</artifactId>
  <version>0.8.0</version>
</dependency>

【讨论】:

    【解决方案3】:

    从 Java 访问 Google Cloud Storage 存储分区的最简单方法是使用 NIO Filesystem Provider for Google Cloud Storage

    该链接显示了如何将依赖项添加到您的项目并进行设置。然后,列出存储桶中的文件:

    try (FileSystem fs = CloudStorageFileSystem.forBucket("bucket-name")) {
      for (Path path : Files.newDirectoryStream(fs.getPath("folder-name/"))) {
            System.out.println(path);
          }
    }
    

    我没有在 AppEngine 本身中尝试过,但我在外面测试过,它可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-17
      • 1970-01-01
      • 1970-01-01
      • 2020-09-10
      • 2015-07-03
      • 2016-10-12
      • 1970-01-01
      相关资源
      最近更新 更多