如何使用Java从Google Cloud Storage读取文件

sre*_*pin 7 java google-cloud-storage

我想使用Java从Google云端存储中读取文件.以下链接没有帮助,因为我不使用HttpServletRequest和HttpServletResponse.

使用java从谷歌云存储中读取文件

有没有其他方法可以实现这一目标?我正在写一个简单的独立程序作为POC

Bra*_*ugh 7

实现此目标的最简单方法是使用Google的google-cloud Java库.下载看起来像这样:

String PROJECT_ID = "my-project";
String PATH_TO_JSON_KEY = "/path/to/json/key";
String BUCKET_NAME = "my-bucket";
String OBJECT_NAME = "my-object";

StorageOptions options = StorageOptions.newBuilder()
            .setProjectId(PROJECT_ID)
            .setCredentials(GoogleCredentials.fromStream(
                    new FileInputStream(PATH_TO_JSON_KEY))).build();

Storage storage = options.getService();
Blob blob = storage.get(BUCKET_NAME, OBJECT_NAME);
ReadChannel r = blob.reader();
Run Code Online (Sandbox Code Playgroud)


小智 7

阅读此GCloud文档了解更多信息。

你的代码应该是:

Storage storage = StorageOptions.newBuilder()
            .setProjectId(projectId)
            .setCredentials(GoogleCredentials.fromStream(new FileInputStream(serviceAccountJSON)))
            .build()
            .getService();
Blob blob = storage.get(BUCKET_URL, OBJECT_URL);
String fileContent = new String(blob.getContent());
Run Code Online (Sandbox Code Playgroud)

  • 请注意,这会在内存中完全读取文件,如果文件很大,这可能是不需要的 (2认同)