FLEXIBLEのGoogleアプリケーションエンジンのJavaでは、どのようにファイルのキャッシュを無効にしますか? gsutilを使ってバケツ全体や個々のファイルを保存したときや読み込んだときに無効になっているかどうかは気にしません。 (私はちょうどファイルが頻繁に置き換えられ、同じファイル名を使用するので、何もキャッシュされたくない)。Googleのクラウドストレージ(フレキシブルなアプリケーションエンジンのJava)のファイルのキャッシュを無効にする
ファイルを格納するための私のコードは:意図したとおりに
private static Storage storageService;
public static void uploadStream(
String name, InputStream stream, String bucketName)
throws IOException, GeneralSecurityException {
Storage storage = StorageOptions.getDefaultInstance().getService();
Blob blob = storage.create(BlobInfo.newBuilder(bucketName, name).build(),stream);}
このコードは、PDFファイルをアップロードし、交換のために完璧に動作します。ユーザーがWebページのpdfを表示すると、最近置き換えられた場合、キャッシュされたコピーが表示されます。新しいバージョンがWebサイトで表示されるまでには1時間かかります。
バケットを編集したり、ファイルをjavaに保存するときにキャッシュを設定したり、ファイルを読むときにキャッシングを設定したりする必要があるかどうかはわかりません。ファイルを読み取るためのコードは次のとおりです。
public ByteArrayOutputStream downloadStream (String bucketName, String filePath)
throws Exception {
Storage storage = getService();
byte [] bytes = storage.readAllBytes(bucketName,filePath);
ByteArrayOutputStream baos = new ByteArrayOutputStream(bytes.length);
baos.write(bytes, 0, bytes.length);
return baos;
}
これはWebサーブレットを介して返されます。
標準のGoogleアプリケーションエンジンもタグ付けされていますが、これは実際にGoogleのクラウドストレージの問題です。ソリューションがgsutilまたはクラウドコンソールにあるかどうかはわかりませんが、GoogleのクラウドにアクセスするJavaコードフレキシブルとスタンダードのストレージが異なります。
パブリックであり、ファイルのアドレスをWebブラウザに入力して表示することはできません。どうすればファイルをjavaとcache-controlヘッダーで一般に公開されないように明示的に設定できますか?私は、光沢がひどくない柔軟なアプリケーションエンジンのドキュメントを見つける.... – KevinG