如何读取gcs存储桶中文件的内容

问题描述 投票:0回答:1

我想在GCS存储桶中打印文件中存在的数据。根据我的要求,不应将文件下载到本地系统,但代码应直接从gcs存储桶itselef中读取代码。由于文件很大,我不想将文件下载到本地系统。

下面是我正在尝试的代码,但是我没有得到预期的输出。

import java.io.*;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.cloud.ReadChannel;
import com.google.cloud.storage.Blob;
import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageOptions; 
import java.io.*;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.cloud.ReadChannel;
import com.google.cloud.storage.Blob;
import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageOptions; 


public class BucketData{

public static void main(String[] args) throws IOException{

String PROJECT_ID = "project_name";
String PATH_TO_JSON_KEY = "path/to/json_key";
System.out.println(PATH_TO_JSON_KEY);
String BUCKET_NAME = "bucket";
String OBJECT_NAME = "abhi.txt";


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();
System.out.println(r);

}
} 
java google-cloud-platform sendgrid
1个回答
0
投票

应您的要求,这应该可以工作:

Blob blob = storage.get(BUCKET_URL, OBJECT_URL); String fileContent = new String(blob.getContent()); System.out.println(fileContent)

© www.soinside.com 2019 - 2024. All rights reserved.