Blobstore を利用してプログラムで生成されたデータを保存する Google App Engine アプリケーションを作成しました。そのために、私はFiles APIを使用しましたが、残念ながら Google Cloud Storage を支持して廃止されました。そのため、GCS で動作するようにヘルパー クラスを書き直しています。
また、ファイルへの参照を保持するためにデータストアに BlobKey を保持しているため (また、実稼働アプリケーションのモデルを変更するのは常に面倒です)、以前と同じようにインターフェイスを可能な限り維持したいと考えています。何かを GCS に保存するときに、BlobKey を取得します
BlobKey blobKey = blobstoreService.createGsBlobKey("/gs/" + fileName.getBucketName() + "/" + fileName.getObjectName());
ここで規定されているように、データストアに永続化します。
ドキュメントには、サーブレット応答で GCS ファイルを提供する方法が記載blobstoreService.serve(blobKey, resp);
されていますが、ファイルの内容を (InputStream、バイト配列などとして) 取得して、コードで使用してさらに処理するにはどうすればよいですか? 私の現在の実装では、 (両方とも非推奨)FileReadChannel
からの読み取りでそれを行います。AppEngineFile