4

Google Cloud Storage デベロッパー ガイドでは、Cache-Control ヘッダーを設定する方法と、API の一貫性の動作に対する重要な影響について説明していますが、Expires ヘッダーについては言及されておらず、Cache-Control 構成から継承されているようにも見えません。

Expires ヘッダーは、Cache-Control の設定に関係なく、要求時間に 1 年を加えた値に常に等しいように見えました。

$ gsutil setmeta -h "Cache-Control:300" gs://example-bucket/doc.html 

Google Cloud Storage バケット (example-bucket) 内のドキュメント (doc.html) に対してリクエストが行われました。

$ curl -I http://example-bucket.storage.googleapis.com/doc.html

次のヘッダーを生成しました

HTTP/1.1 200 OK
Server: HTTP Upload Server Built on Oct 3 2012 16:52:30 (1349308350)
Date: Sat, 13 Oct 2012 00:51:13 GMT
Cache-Control: 300, no-transform
Expires: Sun, 13 Oct 2013 00:51:13 GMT
Last-Modified: Fri, 12 Oct 2012 20:08:41 GMT
ETag: "28fafe4213ae34c7d3ebf9ac5a6aade8"
x-goog-sequence-number: 82
x-goog-generation: 1347601001449082
x-goog-metageneration: 1
Content-Type: text/html
Accept-Ranges: bytes
Content-Length: 7069
Vary: Origin
4

2 に答える 2

5

Expiresヘッダーにリクエスト時間と1年が表示されていると言う理由がわかりません。この例では、Expiresヘッダーに、リクエスト日から1時間後のタイムスタンプが表示されます。

次のコマンドを使用して、オブジェクトの最大経過時間を3600に設定し、次に7200に設定する実験を行いました。

gsutil setmeta "Cache-Control:max-age=7200" gs://marc-us/xyz.txt

次に、gsutil catコマンドと-Dオプションを使用してオブジェクトを取得し、次のように要求/応答の詳細を確認しました。

gsutil -D cat gs://marc-us/xyz.txt

どちらの実験でも、Expiresヘッダーは、オブジェクトのmax-age設定(つまり、リクエスト時間の1時間後とリクエスト時間の2時間後)に従って、予想されるタイムスタンプを生成しました。

于 2012-10-13T00:33:45.740 に答える
2

これは、ヘッダーの形式が正しくないために発生したようです。当たり前。

Cache-Control: 300, no-transform

する必要があります

Cache-Control: public, max-age=300, no-transform

物事が正しく設定されている場合、それらは機能します。RFC 2616 (HTTP/1.1) セクション 14.9 (キャッシュ制御)を参照してください。

于 2012-10-13T02:02:17.263 に答える