6

对于我正在做的一个项目,我会将文件存储在 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 列出存储在存储桶中的文件的任何建议将不胜感激。

4

3 回答 3

7

应该可以帮助你。

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

于 2013-02-14T09:43:06.070 回答
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 本身中尝试过这个,但是我在外面测试过它并且它可以工作。

于 2018-07-12T22:45:55.217 回答
0

以下要点可以列出 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>
于 2017-01-31T18:34:38.897 回答