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をつくることができた