Как прочитать содержимое файла в gcs bucket - PullRequest
0 голосов
/ 21 января 2020

Я хочу напечатать данные, присутствующие в файле, в GCS bucket. Согласно моему требованию, файл не должен загружаться в локальную систему, но код должен непосредственно считывать код из gcs bucket 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);

}
} 

1 Ответ

0 голосов
/ 22 января 2020

для вашего запроса, это должно работать:

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

Имейте в виду, что если ваши файлы огромны, то хранение в памяти не может быть лучшим. Возможно, вы захотите переосмыслить, если это лучше для вас. Это читает файл полностью в памяти. Если ваше приложение выполняет другие действия, то вы можете легко достичь своего предела.

Ознакомьтесь с этой клиентской библиотекой Cloud Storage для получения более подробной информации.

...