概要
オブジェクトストレージ(Cloud Object Storage、COS)コンソールで、バケットにオリジンフェッチルールを設定できます。リクエストしたオブジェクトがバケットに存在しない場合、または特定のリクエストをリダイレクトする必要がある場合、オリジンフェッチルールを使用してCOSから対応するデータにアクセスできます。オリジンフェッチの設定は、主にデータのホット移行、特定のリクエストのリダイレクトなどのシナリオに使用されます。実際のニーズに応じて設定できます。
説明:
オリジンフェッチによるデータ取得の成功率はネットワーク環境に依存します。電信、移動、聯通などのIPセグメントを優先的に使用してください。
金融云リージョンのバケットはオリジンフェッチ設定をサポートしていません。
パブリッククラウドリージョンでは、一部のリージョンのみが同期オリジンフェッチをサポートしています。対象リージョンは次のとおりです:北京、成都、広州、南京、上海、中国 (香港)、シンガポール、ジャカルタ、ソウル、バンコク、東京、リヤド、シリコンバレー(米国西部)、バージニア(米国東部)、サンパウロ、フランクフルト。
オリジンフェッチルール
トリガー条件
非同期オリジンフェッチおよび同期オリジンフェッチモードでは、GETリクエストが404を返した場合にのみオリジンフェッチがトリガーされます。HEADまたはその他のリクエストの場合は、オリジンフェッチはトリガーされません。
リダイレクトモードでは、ユーザーは400~599のHTTPステータスコードをカスタマイズして、オリジンフェッチをトリガーできます。
オリジンサーバーへのアクセス
非同期オリジンフェッチおよび同期オリジンフェッチモードでは、COSにアクセスする際のQueryStringおよびHeader情報をオリジンサーバーにパススルーするかどうかを設定できます。また、オリジンサーバーにリクエストする際に追加のHeader情報を付与することもできます。リダイレクトモードでは、QueryStringをパススルーするかどうかの設定のみがサポートされます。
GET操作時にGET rangeを指定した場合、COSは元のリクエストに加えて、rangeを含まない非同期リクエストを別途送信し、完全なオブジェクトデータを取得してCOSに保存します。
レスポンスとストレージ
オリジンサーバーがchunkedエンコードでデータを返すことをサポートしています。
オリジンサーバーが404ステータスコードを返した場合、そのままCOSにパススルーされ、ユーザーに返されます。3XXフォローポリシーが有効化されている場合、オリジンサーバーが3XXステータスコードを返した際に、別のオリジンサーバーからデータを取得します。オリジンサーバーがその他の2XX以外のステータスコードを返した場合、COSは424を返します。
オリジンフェッチで返されたファイルは、オリジンサーバーへのリクエスト時に使用したファイル名でCOSに保存されます。例えば、あるユーザーがリクエストしたファイルexample.jpgがバケットに存在しない場合、COSはオリジンフェッチメカニズムをトリガーし、ユーザーが設定したオリジンフェッチアドレスhttp://origin.com/example.jpgからファイルを取得して、バケットに保存するファイル名をexample.jpgに設定します。
COSに保存される新しいオブジェクトには以下のメタデータが含まれ、データ内容はオリジンサーバーの値に従います。
cache-control
content-disposition
content-encoding
content-type
expires
x-cos-meta-*
操作手順
2. 左側のナビゲーションメニューでバケットリストをクリックし、バケットリストページに移動します。
3. クリックして、オリジンフェッチを設定する必要があるバケットに入り、バケット詳細ページに移動します。
4. 左側のナビゲーションメニューで、基本設定>オリジンフェッチ設定を選択し、オリジンフェッチルールの追加をクリックします。
5. ポップアップウィンドウで、以下の情報を設定し、次のステップをクリックします。
オリジンフェッチモード:実際のニーズに応じてオリジンフェッチモードを選択できます。
非同期オリジンフェッチ:リクエストがCOSでファイルを検索して存在しない場合、COSは指定されたオリジンサーバーからファイルを検索します。非同期オリジンフェッチモードでは、COSはファイルが存在しないことを確認後、302をクライアントに返し、クライアントが指定されたオリジンサーバーにリダイレクトされます。その後、ファイルは非同期でCOSストレージバケットにアップロードされます。
説明:
非同期オリジンフェッチでは、ファイルを直接返さず、まず302をクライアントに返し、その後非同期でファイルをCOSにアップロードします。
クライアントでFollow 302を有効化し、オリジンサーバーからデータを取得することをお勧めします。
ファイルのアップロード時間は複数の要因に影響されるため、SLAを保証することはできません。リアルタイム性を求めるユーザーには同期オリジンフェッチを選択することをお勧めします。
同期オリジンフェッチ:リクエストがCOSでファイルを検索して存在しない場合、COSは指定されたオリジンサーバーからファイルを検索し、そのファイルをユーザー側に返すとともにバケットにアップロードします。
注意:
同期オリジンフェッチを使用する場合、ファイルを完全にダウンロードし、ステータスコード200が返された場合にのみ、リアルタイム性を保証できます。クライアントがrangeリクエストでファイルにアクセスする場合、リアルタイム性は保証されません。
リダイレクト:リクエストがバケットにアクセスする際に指定されたエラーが発生した場合、COSはリダイレクト先アドレスをユーザー側に返し、オリジンサーバーのファイルを保存しません。ユーザー側はリダイレクト先アドレスを通じて、オリジンサーバーにリソースへのアクセスをリクエストします。
オリジンフェッチ条件:必要に応じてオリジンフェッチをトリガーする条件を選択できます。オリジンフェッチをトリガーするには、設定したすべてのオリジンフェッチ条件を同時に満たす必要があります。
HTTPステータスコード404:非同期オリジンフェッチまたは同期オリジンフェッチを選択した場合、GETリクエスト後にHTTPステータスコード404が返されたときにオリジンフェッチがトリガーされます。この項目は必須であり、キャンセルできません。リダイレクトオリジンフェッチモードを選択した場合、400~599のHTTPステータスコードを入力できます。
ファイル名プレフィックス:リクエストのファイル名プレフィックスが一致すると、オリジンフェッチルールをトリガーできます。例えば、ファイル名プレフィックスをprefixに設定し、GETリクエストhttps://examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/prefix123.jpgを送信し、返されたHTTPステータスコードが404の場合、オリジンフェッチルールがトリガーされます。1つのオリジンフェッチルールで複数のファイル名プレフィックスを設定することはできません。
ファイル名サフィックス:リクエストのファイル名サフィックスが一致すると、オリジンフェッチルールをトリガーできます。例えば、ファイル名サフィックスをflvに設定し、https://examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/feedvideo/xx.flvにアクセスし、返されたHTTPステータスコードが404の場合、オリジンフェッチルールがトリガーされます。1つのオリジンフェッチルールで複数のファイル名サフィックスを設定することはできません。
オリジンフェッチドメインのブロック:この設定項目は非同期オリジンフェッチと同期オリジンフェッチモードにのみ有効で、リダイレクトモードではこの設定をサポートしません。リクエストのドメイン名が一致する場合、そのリクエストはオリジンフェッチルールをトリガーしません。例えば、ブロックするドメイン名をexamplebucket-1250000000.cos.ap-beijing.myqcloud.comに設定すると、このドメイン名から存在しないオブジェクトにアクセスした場合、オリジンフェッチはトリガーされず、直接404が返されます。最大10件のオリジンフェッチドメインのブロックをサポートします。バケットのデフォルトドメインとカスタムドメインをサポートします。
back-to-originプロトコル:COSがお客様が指定したオリジンサーバーにアクセスする際に使用するHTTPプロトコルで、HTTPSの強制、HTTPの強制およびリクエストプロトコルのフォローというオプションがあります。
HTTPS/HTTPの強制を選択した場合、COSはHTTPS/HTTPプロトコルを使用してオリジンサーバーにアクセスします。
リクエストプロトコルのフォローを選択すると、COSは、お客様がCOSにリクエストしたプロトコルでオリジンサーバーにアクセスします。
リクエストパラメータ:COSにアクセスする際に付加されるqueryStringリクエストパラメータをオリジンサーバーに透過的に送信するかどうかです。
リクエストヘッダー:すべてのリクエストヘッダーをパススルーするか、指定のリクエストヘッダーのみをパススルーするかを選択できます。すべてをパススルーする場合は、hostヘッダーのパススルーを禁止する設定を推奨します。一括設定にも対応しています。
指定リクエストヘッダーのパススルー:指定リクエストヘッダーのパススルーを選択する場合、この項目の設定が必要です。ここでは、オリジンサーバーにパススルーしたいリクエストヘッダー情報を追加できます。バックトゥオリジンのタイプを選択した場合、この項目の設定は不要です。
指定リクエストヘッダーのパススルーの禁止:ここでは、オリジンサーバーにパススルーしたくないリクエストヘッダー情報を追加できます。バックトゥオリジンのタイプを選択した場合、この項目の設定は不要です。
リクエストヘッダーの追加:ここでは、オリジンサーバーに戻るときに追加のリクエストヘッダーを追加できます。リダイレクト元タイプが選択されている場合は、この項目を設定しないでください。
6. 選択したback-to-originモードに応じて、以下の情報を選択して設定し、次のステップをクリックします。
back-to-originアドレス:ドメイン名またはIPアドレスを入力するだけで、ドメイン名またはIPアドレスの後にポート番号を追加できます。プレフィックスhttp://またはhttps://を付ける必要はありません。
正しいアドレスの例は次のとおりです:
abc.example.com
abc.example.com:8080
202.96.128.86
202.96.128.86:8080
back-to-originアドレスのバックアップ:バックアップ用バックトゥオリジンアドレスの設定に対応しています。入力形式はバックトゥオリジンアドレス設定項目の説明を参照してください。この機能はストレージバケットのリージョンに依存し、対応リージョンでのみ設定可能です。
アドレス設定:リダイレクト先のファイルまたはパスを具体的に設定するかを選択できます。以下は各設定項目の説明です:
固定ファイル設定:バックトゥオリジンルールがトリガーされると、すべて指定された固定ファイルにリダイレクトします。
プレフィックス・サフィックスの設定:リダイレクトルールがトリガーされると、指定された前後接頭辞のファイルパスにジャンプします。
例えば、指定された前接頭辞が「test」の場合、https://examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/path/prefix123.jpg にアクセスするとリダイレクトルールが発動し、<回源アドレス>/test/path/prefix123.jpg にジャンプします。
指定された後接尾辞が「.jpg」の場合、https://examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/path/prefix123 にアクセスするとリダイレクトルールが発動し、<回源アドレス>/path/prefix123.jpg にジャンプします。
注意:
指定されたプレフィックスとサフィックスの設定は同時に有効です。
3xxフォローポリシー:有効にすると、オリジンサーバーが3XXリダイレクトステータスコードを返した場合、COSは自動的に3XXをフォローし、次のオリジンサーバーからデータをプルします。無効にするとリソースはプルされません。
注意:
オリジンサーバーから返された3XXがプライベートネットワークアドレスにリダイレクトされた場合、COSはフォローしません。同期バックトゥオリジンモードでは、COSはプライベートネットワークへのリダイレクトは無視されます。非同期バックトゥオリジンモードおよびリダイレクトモードでは、プライベートネットワークアドレスに対してフォローするかどうかは、業務要件に応じてご判断ください。
back-to-originアドレス:ドメイン名またはIPアドレスを入力するだけで、ドメイン名またはIPアドレスの後にポート番号を追加できます。プレフィックスhttp://またはhttps://を付ける必要はありません。
正しいアドレスの例は次のとおりです。
正しいアドレスの例は次のとおりです:
abc.example.com
abc.example.com:8080
202.96.128.86
202.96.128.86:8080
back-to-originアドレスのバックアップ:バックアップ用バックトゥオリジンアドレスの設定に対応しています。入力形式はバックトゥオリジンアドレス設定項目の説明を参照してください。この機能はストレージバケットのリージョンに依存し、対応リージョンでのみ設定可能です。
アドレス設定:リダイレクト先のファイルまたはパスを具体的に設定するかを選択できます。以下は各設定項目の説明です:
固定ファイル設定:バックトゥオリジンルールがトリガーされると、すべて指定された固定ファイルにリダイレクトします。
プレフィックス・サフィックスの設定:リダイレクトルールがトリガーされると、指定された前後接頭辞のファイルパスにジャンプします。
例えば、指定された前接頭辞が「test」の場合、https://examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/path/prefix123.jpg にアクセスするとリダイレクトルールが発動し、<回源アドレス>/test/path/prefix123.jpg にジャンプします。
指定された後接尾辞が「.jpg」の場合、https://examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/path/prefix123 にアクセスするとリダイレクトルールが発動し、<回源アドレス>/path/prefix123.jpg にジャンプします。
注意:
指定されたプレフィックスとサフィックスの設定は同時に有効です。
3xxフォローポリシー:有効にすると、オリジンサーバーが3XXリダイレクトステータスコードを返す場合、COSのデフォルトの処理ポリシーは3XXに従って、別のオリジンサーバーからデータを再度プルすることになります。無効を選択してもリソースはプルされません。
オリジンサーバーへのリターンパケット:この機能を有効化すると、オリジンサーバーに、ステータスコードなどの情報を含むリターンパケットを直接返すことができます。この設定は、ストレージバケットのリージョンに依存します。対応リージョンでのみ設定が可能です。
back-to-originアドレス:ドメイン名またはIPアドレスを入力するだけで、ドメイン名またはIPアドレスの後にポート番号を追加できます。プレフィックスhttp://またはhttps://を付ける必要はありません。
正しいアドレスの例は次のとおりです。
正しいアドレスの例は次のとおりです:
abc.example.com
abc.example.com:8080
202.96.128.86
202.96.128.86:8080
アドレス設定:リダイレクト先のファイルまたはパスを具体的に設定するかを選択できます。以下は各設定項目の説明です:
固定ファイル設定:バックトゥオリジンルールがトリガーされると、すべて指定された固定ファイルにリダイレクトします。
プレフィックス・サフィックスの設定:リダイレクトルールがトリガーされると、指定された前後接頭辞のファイルパスにジャンプします。
例えば、指定された前接頭辞が「test」の場合、https://examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/path/prefix123.jpg にアクセスするとリダイレクトルールが発動し、<回源アドレス>/test/path/prefix123.jpg にジャンプします。
指定された後接尾辞が「.jpg」の場合、https://examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/path/prefix123 にアクセスするとリダイレクトルールが発動し、<回源アドレス>/path/prefix123.jpg にジャンプします。
注意:
指定されたプレフィックスとサフィックスの設定は同時に有効です。
リダイレクトCode:301、302、307から選択可能で、デフォルトは302です。
7. 設定したback-to-originルールが正しいことを確認し、OKをクリックします。
ルールを追加すると、システムは新しいルールに最高の優先度を割り当てます。COSは、最高の優先度のルールに従ってback-to-originを行います。また、ルールリストページの変更ボタンをクリックして、優先順位を調整することもできます。
注意:
高優先度のソースが失敗した場合、低優先度のソースアドレスには戻らず、元のソースのバックアップソースアドレスに戻ります。
事例
背景
APPIDが1250000000のユーザーは、examplebucket-1250000000という名前のバケットを作成し、CDNアクセラレーションアクセスドメインを有効化しました。
examplebucket-1250000000.file.myqcloud.com
バケットのback-to-originアドレスを、次のように設定します。
オリジンサーバーhttp://abc.example.comに画像picture.jpgを保存します。
クライアントの初回アクセス(back-to-originの同期が有効でない場合):
http://examplebucket-1250000000.file.myqcloud.com/picture.jpg
COSは、オブジェクトをヒットできなかったと判断すると、クライアントにHTTPステータスコード302を返し、以下のアドレスにジャンプします。
http://abc.example.com/picture.jpg
クライアントの初回アクセス(back-to-originの同期が有効である場合):
http://examplebucket-1250000000.file.myqcloud.com/picture.jpg
COSは、オブジェクトをヒットできなかったと判断すると、クライアントにHTTPステータスコード200を返し、以下のアドレスにジャンプします。
http://abc.example.com/picture.jpg
この時点で、オブジェクトはオリジンサーバーからクライアントに提供され、アクセスが保証されます。同時にCOSは、オリジンサーバーからpicture.jpgをコピーし、バケットexamplebucket-1250000000のルートディレクトリに保存します。
2回目のアクセス:
http://examplebucket-1250000000.file.myqcloud.com/picture.jpg
COSは、ルートディレクトリのpicture.jpgオブジェクトに直接アクセスし、それをクライアントに返します。