2012-12-21 24 views
25

Google Cloud Storageのファイルを変更するまでにどのくらい時間がかかりますか?Google Cloud Storageの伝播

私は、ファイルの内容を変更してgsutilで再アップロードするという非常に不満な問題を抱えていますが、変更は数時間は表示されません。変更されたファイルにすべてをすぐに伝播させる方法はありますか?

Google Cloud Storageコンソールでファイルを見ると、新しいファイルが表示されますが、パブリックURLにヒットした場合は古いバージョンであり、場合によっては2バージョン前です。

設定していないヘッダーがありますか?

EDIT:

私はgsutil -h "Cache-Control: no-cache" cp -a public-read MyFileを試してみましたが、それが助けにはならないが、新しいキャッシュなしのバージョンが引き継ぐ前に、多分、古いファイルが期限切れにする必要がありますか?

私は、ファイルのカール-Iを行なったし、これを取り戻す:

HTTP/1.1 200 OK 
Server: HTTP Upload Server Built on Dec 12 2012 15:53:08 (1355356388) 
Expires: Fri, 21 Dec 2012 19:58:39 GMT 
Date: Fri, 21 Dec 2012 18:58:39 GMT 
Last-Modified: Fri, 21 Dec 2012 18:53:41 GMT 
ETag: "66d820174d6de17a278b327e4c3e9b4e" 
x-goog-sequence-number: 3 
x-goog-generation: 1356116021512000 
x-goog-metageneration: 1 
Content-Type: application/octet-stream 
Content-Language: en 
Accept-Ranges: bytes 
Content-Length: 160 
Cache-Control: public, max-age=3600, no-transform 
Age: 3449 

それはキャッシュなしにもかかわらず、時間に期限切れとなる示すために思われます。

答えて

33

Google Cloud Storageは強力なデータ整合性を提供します。書き込みが完了すると、世界中のどこからでも読み取りが最新のデータを取得します。

ただし、キャッシュを有効にすると(公開されているオブジェクトではデフォルトでtrue)、そのオブジェクトの読み取りでは、オブジェクトに指定されているCache-Controlの最大有効期間と同じ古いバージョンが表示されます。たとえば、あなたがこのようなファイルをアップロードし、場合:

gsutil cp -a public-read file gs://my_bucket/file 

あなたは、max-年齢が1時間(3600秒)であることがわかります。

gsutil ls -L gs://my_bucket/file 
gs://my_bucket/file: 
    Creation time: Fri, 21 Dec 2012 19:59:57 GMT 
    Cache-Control: public, max-age=3600, no-transform 
    Content-Length: 1065 
    Content-Type: text/plain 
    ETag:  eb3fb83beedf1efffe5b8e32e8d6a65a 
    ... 

あなたが公に読めるないようにするにはあなたができるキャッシュされているからオブジェクト:また

gsutil setmeta -h Cache-Control:no-cache gs://my_bucket/file 

は、オブジェクト上の短い最大エージングを設定できます

gsutil setmeta -h 'Cache-Control:public, max-age=600, no-transform' 

Mike Schwartz Google Cloud Storageチーム

+1

私はno-cacheを試したことを含めて質問を更新しましたが、まだmax-age = 3600が表示されています。新しいno-cacheファイルが引き継がれる前に古いファイルが期限切れになる必要がありますか? –

+0

OK、キャッシュされていないバージョンが期限切れになるのを待ってから、キャッシュされていないバージョンを引き継ぐ必要があるようです。期限が切れたので、no-cacheバージョンが正しく表示されています。 –

+3

@mike CDNのようにキャッシュを無効/フラッシュする機能を持たせるとよいでしょう。 – themihai