JavaでGCSにあるファイルを取得してStreamにしたい
公式ドキュメントだとファイルを特定のフォルダにダウンロードする方法が紹介されている
これをファイルダウンロードせずにStreamにする方法を調べた
com.google.cloud.storage.Blobクラスのreader()メソッドでReadableByteChannelを継承したインスタンスが生成されるのでChannels.newInputStreamでInputStreamをつくればいつも通りの方法で作成できる
Blob blob = storage.get(BlobId.of(bucketName, fileName));
BufferedReader bufferedReader =
new BufferedReader(
new InputStreamReader(Channels.newInputStream(blob.reader()), StandardCharsets.UTF_8));
Stream<String> lines = bufferedReader.lines();
ファイル一行ずつのStreamをつくることができた