このトピックでは、いくつかの特別なシナリオでミラーリングベースのback-to-originルールを設定する方法について説明します。
シナリオ 1
お客様Aは、中国 (杭州) リージョンにbucket-01という名前のバケットを作成します。
要求者がbucket-01のexamplefolderディレクトリに存在しないオブジェクトを要求すると、OSSは
https://example.com
のdestfolderディレクトリを検索して必要なオブジェクトを取得します。オリジン内のオブジェクトのMD5ハッシュをチェックする必要があります。 オリジン内のオブジェクトのMD5ハッシュがObject Storage Service (OSS) によって計算されたMD5ハッシュと一致しない場合、これらのオブジェクトはbucket-01に格納されません。
上記の要件を満たすには、次の手順を実行して、ミラーリングベースのback-To-originルールを設定します。
OSSコンソールにログインします。
左側のナビゲーションウィンドウで、バケットリスト をクリックします。 [バケット] ページで、目的のバケットを見つけてクリックします。
左側のナビゲーションツリーで、 を選択します。
[ミラーリングベースのBack-to-origin] ページで、[ルールの作成] をクリックします。
[ルールの作成] パネルで、必要なパラメーターを設定します。 下表に、各パラメーターを説明します。 他のパラメーターのデフォルト設定を保持します。
パラメーター
説明
メソッド
[ミラーリング] を選択します。
条件
[オブジェクト名プレフィックス] を選択し、パラメーターをexamplefolder/ に設定します。
ファイルプレフィックスの置き換えまたは削除
[ファイルプレフィックスの置換または削除] を選択し、パラメーターをdestfolder/ に設定します。
説明このパラメーターは、Object Name Prefixパラメーターを設定した場合にのみ表示されます。
オリジンURL
最初のテキストボックスでhttpsを選択し、2番目のテキストボックスにexample.comを入力し、3番目のテキストボックスを空のままにします。
MD5検証
[MD5検証の実行] を選択します。
back-to-originリクエストに対する応答にContent-MD5ヘッダーが含まれている場合、OSSは、オリジンから取得したオブジェクトのMD5ハッシュがContent-MD5ヘッダーの値と一致するかどうかを確認します。
オブジェクトの計算されたMD5ハッシュがオリジンから取得したContent-MD5ヘッダーの値と一致する場合、クライアントはオリジンからオブジェクトを取得し、OSSはオブジェクトを格納します。
オブジェクトの計算されたMD5ハッシュがオリジンから取得したContent-MD5ヘッダーの値と一致しない場合、OSSはオブジェクトを格納しませんが、オブジェクトはクライアントに返されます。
[OK] をクリックします。
次の内容は、前のback-to-originルールが設定された後のアクセスプロセスを示しています。
リクエスタは、初めて
https://bucket-01.oss-cn-hangzhou.aliyuncs.com/examplefolder/example.txt
にアクセスする。bucket-01にexamplefolder/example.txtオブジェクトが含まれていない場合、OSSは
https://example.com/destfolder/example.txt
でオブジェクトを取得します。OSSがオリジンからオブジェクトを取得すると、OSSは次の操作を実行します。
back-to-originリクエストへの応答にContent-MD5ヘッダーが含まれている場合、OSSはオリジンから取得したオブジェクトのMD5ハッシュを計算し、計算したMD5ハッシュをオリジンから取得したContent-MD5ヘッダーの値と照合します。 計算されたMD5ハッシュがオリジンから取得したContent-MD5ヘッダーの値と一致する場合、OSSはオブジェクトをexamplefolder/example.txtとしてbucket-01に格納し、オブジェクトをリクエスタに返します。 計算されたMD5ハッシュがオリジンから取得したContent-MD5ヘッダーの値と一致しない場合、オブジェクトはリクエスタに返されますが、バケット-01には格納されません。
back-to-originリクエストに対するレスポンスにContent-MD5ヘッダーが含まれていない場合、OSSはオブジェクトをexamplefolder/example.txtとしてbucket-01に格納し、リクエスト元に返します。
シナリオ 2
顧客Bは、中国 (北京) リージョンにbucket-02という名前のバケットと、オリジンa (https://example.com
) とオリジンB (https://example.org
) の2つのオリジンを作成します。 2つの起源は同じディレクトリを持っています。 お客様Bには以下の要件があります。
リクエスタがbucket-02/dir1ディレクトリに存在しないオブジェクトを要求すると、OSSは
https://example.com
のexample1ディレクトリでオブジェクトを検索します。リクエスタがbucket-02/dir2ディレクトリに存在しないオブジェクトを要求すると、OSSは
https://example.org
のexample2ディレクトリでオブジェクトを検索します。リダイレクトポリシーがOrigin AとOrigin Bに設定されているかどうかに基づいて、指定されたアドレスからオブジェクトを要求するかどうかを判断します。
上記の要件を満たすには、シナリオ1に記載されている手順を参照して、次の表に記載されているパラメーター設定を持つ2つのミラーリングベースのback-To-originルールを構成します。
ルール1のパラメーター設定
パラメーター
説明
メソッド
[ミラーリング] を選択します。
条件
[オブジェクト名プレフィックス] を選択し、パラメーターをdir1/ に設定します。
ファイルプレフィックスの置き換えまたは削除
[ファイルプレフィックスの置換または削除] を選択し、パラメーターをexample1/ に設定します。
説明このパラメーターは、Object Name Prefixパラメーターを設定した場合にのみ表示されます。
オリジンURL
最初のテキストボックスでhttpsを選択し、2番目のテキストボックスにexample.comを入力し、3番目のテキストボックスを空のままにします。
3xxレスポンス
[オリジンをフォローしてリクエストをリダイレクト] を選択します。
説明Follow Origin to Redirect Requestが選択されていない場合、OSSはリダイレクションルールで指定されたURLをリクエスタに直接返します。
ルール2のパラメーター設定
パラメーター
説明
メソッド
[ミラーリング] を選択します。
条件
[オブジェクト名プレフィックス] を選択し、パラメーターをdir2に設定します。
ファイルプレフィックスの置き換えまたは削除
[ファイルプレフィックスの置換または削除] を選択し、パラメーターをexample2/ に設定します。
説明このパラメーターは、Object Name Prefixパラメーターを設定した場合にのみ表示されます。
オリジンURL
最初のテキストボックスでhttpsを選択し、2番目のテキストボックスにexample.orgを入力してから、3番目のテキストボックスを空のままにします。
3xxレスポンス
[オリジンをフォローしてリクエストをリダイレクト] を選択します。
次の内容は、前述のback-to-originルールが設定された後のアクセスプロセスを示しています。
リクエスタは、初めて
https://bucket-02.oss-cn-beijing.aliyuncs.com/dir1/example.txt
を要求する。example.txtオブジェクトがbucket-02のdir1ディレクトリに存在しない場合、OSSは
https://example.com/example1/example.txt
でオブジェクトを取得します。Origin aのexample1/example.txtにリダイレクションルールが指定されている場合、OSSはOrigin Aのリダイレクションルールで指定されたURLに新しいリクエストを送信し、オブジェクトをdir1/example1/example.txtとしてbucket-02に格納し、リクエスト元に返します。
Origin Aのexample1/example.txtにリダイレクションルールが指定されていない場合、OSSはオブジェクトをdir1/example1/example.txtとしてbucket-02に格納し、リクエスト元に返します。
リクエスタが
https://bucket-02.oss-cn-beijing.aliyuncs.com/dir2/example.txt
を要求した場合、back-to-originルールを使用して取得したオブジェクトは、bucket-02のdir2/example2ディレクトリに格納されます。
シナリオ 3
顧客Cは、中国 (上海) リージョンにbucket-03とbucket-04の2つのバケットを作成します。 bucket-03のアクセス制御リスト (ACL) はpublic-readで、bucket-04のACLはprivateです。 お客様Cには以下の要件があります。
要求者がbucket-03のルートディレクトリのexamplefolderディレクトリに存在しないオブジェクトを要求すると、OSSはbucket-04のexamplefolderディレクトリでオブジェクトを検索します。
オブジェクトのリクエストURLに含まれるクエリ文字列は、オリジンに転送できます。
オブジェクトのリクエストURLに含まれる
header1
、header2
、header3
のHTTPヘッダーをオリジンに転送できます。
上記の要件を満たすには、シナリオ1で説明されている手順を参照し、次のパラメーター設定を持つミラーリングベースのback-To-originルールを構成します。
パラメーター | 説明 |
メソッド | [ミラーリング] を選択します。 |
条件 | [オブジェクト名プレフィックス] を選択し、パラメーターをexamplefolder/ に設定します。 |
起源タイプ | [OSSプライベートバケット] を選択し、[ソースバケット] ドロップダウンリストからBucket-04を選択します。 説明 オリジンタイプを設定すると、OSSはRAMコンソールで |
オリジンURL | 最初のテキストボックスでhttpsを選択し、他のテキストボックスは空のままにします。 |
オリジンパラメータ | [クエリ文字列で転送] を選択します。 OSSは、必要なオブジェクトのURLに含まれるクエリ文字列をオリジンに転送します。 |
HTTPヘッダーの送信ルールの設定 | [許可] に [特定のHTTPヘッダーを送信] を選択し、header1、header2、およびheader3 HTTPヘッダーを追加します。 Back-to-originルールは、 重要 リクエスト元がプライベートバケット内のデータを取得する場合、[すべてのHTTPヘッダーを送信] を選択しないでください。 それ以外の場合、back-to-originリクエストは失敗します。 |
次の内容は、前のback-to-originルールが設定された後のアクセスプロセスを示しています。
リクエスタは、初めて
https://bucket-03.oss-cn-shanghai.aliyuncs.com/examplefolder/example.png?caller=lucas&production=oss
にアクセスする。examplefolder/example.pngがbucket-03に存在しない場合、OSSはオブジェクトを取得するためのリクエストを
https://bucket-04.oss-cn-shanghai.aliyuncs.com/examplefolder/example.png?caller=lucas&production=oss
に送信します。bucket-04は
に基づいてアクセス統計を収集しますか? caller=lucas&production=oss
パラメーターをオリジンに渡し、example.pngをOSSに返します。OSSは、オブジェクトをexamplefolder/example.pngとしてbucket-03に保存します。
リクエストにheader1、header2、およびheader3のHTTPヘッダーが含まれている場合、これらのヘッダーもbucket-04に転送されます。