バケットに静的 Web サイトホスティングを設定し、ミラーリングベースのオリジンフェッチのためのリダイレクトルール (RoutingRule) を設定できます。 静的 Web サイトホスティングを有効にすると、Web サイトへのリクエストはバケットへのリクエストと等価になります。 指定したインデックスページやエラーページへの自動リダイレクトも設定できます。 ミラーリングベースのオリジンフェッチのリダイレクトルールは、Object Storage Service (OSS) へのシームレスなデータ移行に役立ちます。
静的 Web サイトホスティング
静的 Web サイトは、静的コンテンツを持つ Web ページで構成されます。 これには、JavaScript などのクライアントサイドスクリプトが含まれます。 静的 Web サイトをバケットでホストし、バケットのエンドポイントを使用してサイトにアクセスできます。
静的 Web サイトホスティングの設定
次のコードは、静的 Web サイトホスティングを設定する方法を示しています。
const OSS = require('ali-oss') const client = new OSS({ // バケットが配置されているリージョンに region を設定します。 たとえば、バケットが中国 (杭州) リージョンにある場合は、region を oss-cn-hangzhou に設定します。 region: 'yourRegion', // 環境変数からアクセス認証情報を取得します。 このサンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。 accessKeyId: process.env.OSS_ACCESS_KEY_ID, accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET, authorizationV4: true, // bucket をご利用のバケット名に設定します。 bucket: 'yourBucketName', }); // 静的 Web サイトホスティングを設定します。 async function putBucketWebsite () { try { // バケット名を指定します (例: examplebucket)。 const result = await client.putBucketWebsite('examplebucket', { // 静的 Web サイトホスティングのデフォルトのホームページを設定します。 index: 'index.html', // 静的 Web サイトホスティングのデフォルトの 404 ページを設定します。 error: 'error.html' }); console.log(result); } catch (e) { console.log(e); } } putBucketWebsite();静的 Web サイトホスティング構成の表示
次のコードは、静的 Web サイトホスティング構成を表示する方法を示しています。
const OSS = require('ali-oss') const client = new OSS({ // バケットが配置されているリージョンに region を設定します。 たとえば、バケットが中国 (杭州) リージョンにある場合は、region を oss-cn-hangzhou に設定します。 region: 'yourRegion', // 環境変数からアクセス認証情報を取得します。 このサンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。 accessKeyId: process.env.OSS_ACCESS_KEY_ID, accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET, authorizationV4: true, // bucket をご利用のバケット名に設定します。 bucket: 'yourBucketName', }); // 静的 Web サイトホスティング構成のデフォルトのホームページとデフォルトの 404 ページを表示します。 async function getBucketWebsite () { try { // バケット名を指定します (例: examplebucket)。 const result = await client.getBucketWebsite('examplebucket'); console.log(result); } catch (e) { console.log(e); } } getBucketWebsite();静的 Web サイトホスティング構成の削除
次のコードは、静的 Web サイトホスティング構成を削除する方法を示しています。
const OSS = require('ali-oss') const client = new OSS({ // バケットが配置されているリージョンに region を設定します。 たとえば、バケットが中国 (杭州) リージョンにある場合は、region を oss-cn-hangzhou に設定します。 region: 'yourRegion', // 環境変数からアクセス認証情報を取得します。 このサンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。 accessKeyId: process.env.OSS_ACCESS_KEY_ID, accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET, authorizationV4: true, // bucket をご利用のバケット名に設定します。 bucket: 'yourBucketName', }); // 静的 Web サイトホスティング構成を削除します。 async function deleteBucketWebsite() { try { // バケット名を指定します (例: examplebucket)。 const result = await client.deleteBucketWebsite('examplebucket'); console.log(result); } catch (e) { console.log(e); } } deleteBucketWebsite();
ミラーリングベースのオリジンフェッチ
ミラーリングベースのオリジンフェッチは、主に OSS へのシームレスなデータ移行に使用されます。 たとえば、サービスが独自のオリジンサーバーまたは別のクラウドプロダクトで実行されているとします。 ビジネスの発展のためにサービスを OSS に移行する場合、移行中もサービスが継続して実行されるようにする必要があります。 移行中に、ミラーリングベースのオリジンフェッチルールを使用して、まだ OSS に移行されていないデータを取得できます。 これにより、サービスが期待どおりに実行されることが保証されます。
ミラーリングベースのオリジンフェッチの設定
たとえば、リクエスターが存在しないファイルを宛先バケットでアクセスしようとした場合、back-to-origin 条件とオリジン URL を指定できます。 OSS はオリジンサーバーからオブジェクトファイルを取得します。 たとえば、中国 (杭州) リージョンに examplebucket という名前のバケットがあるとします。 リクエスターがバケットの examplefolder ディレクトリに存在しないファイルにアクセスしようとした場合、https://www.example.com/ サイトの examplefolder ディレクトリからファイルを取得するルールを設定できます。
次のコードは、上記のシナリオでミラーリングベースのオリジンフェッチルールを設定する方法を示しています。
const OSS = require('ali-oss') constpath=require("path") const client = new OSS({ // バケットが配置されているリージョンに region を設定します。 たとえば、バケットが中国 (杭州) リージョンにある場合は、region を oss-cn-hangzhou に設定します。 region: 'yourRegion', // 環境変数からアクセス認証情報を取得します。 このサンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。 accessKeyId: process.env.OSS_ACCESS_KEY_ID, accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET, authorizationV4: true, // bucket をご利用のバケット名に設定します。 bucket: 'yourBucketName', }); async function putBucketWebsite() { try { // バケット名を指定します (例: examplebucket)。 const result = await client.putBucketWebsite("examplebucket", { // 静的 Web サイトホスティングのデフォルトのホームページを設定します。 index: "index.html", // 静的 Web サイトホスティングのデフォルトの 404 ページを設定します。 error: "error.html", // サブディレクトリへのアクセス時に、サブディレクトリ内のデフォルトのホームページにリダイレクトするかどうかを指定します。 // supportSubDir:true , // デフォルトのホームページを設定した後、名前がスラッシュ (/) で終わらない存在しないオブジェクトへのリクエストの動作を指定します。 このパラメーターは、SupportSubDir が true の場合にのみアクティブになります。 // type: 0 , routingRules: [ { RuleNumber: 1, // このルールは、このプレフィックスを持つオブジェクトにのみ適用されます。 Condition: { KeyPrefixEquals: "examplefolder/" , // 指定されたオブジェクトへのアクセス時に 404 ステータスコードが返された場合にのみ、このルールに一致します。 HttpErrorCodeReturnedEquals: 404 }, // リダイレクトタイプを指定します。 Redirect: { RedirectType: "Mirror", // リダイレクトまたはミラーリングベースのオリジンフェッチルールが実行されるときに、リクエストパラメーターを含めるかどうかを指定します。 PassQueryString: true, // ミラーリングベースのオリジンフェッチのオリジン URL を指定します。 MirrorURL: 'http://example.com/', // これは PassQueryString と同じ効果がありますが、優先度が高くなります。 このパラメーターは、RedirectType が Mirror に設定されている場合にのみアクティブになります。 MirrorPassQueryString:true, // back-to-origin リクエストが 3xx 応答を返した場合、指定された場所にリダイレクトしてデータをフェッチするかどうかを指定します。 このパラメーターは、RedirectType が Mirror に設定されている場合にのみアクティブになります。 true に設定すると、OSS は location に対応するアドレスへのリクエストを続行します。 MirrorFollowRedirect:true, // back-to-origin 応答本文の MD5 ハッシュをチェックするかどうかを指定します。 MirrorCheckMd5:false, // ミラーリングベースのオリジンフェッチで伝送するヘッダーを指定します。 // すべてのヘッダーをオリジンサーバーに渡すかどうかを指定します。 MirrorHeaders:{ PassAll: true, // Pass で指定されたヘッダーをオリジンサーバーに渡します。 Pass:'myheader-key1', Pass:'myheader-key2', // Remove で指定されたヘッダーがオリジンサーバーに渡されるのを禁止します。 Remove:'myheader-key3', Remove:'myheader-key4'} }} ] }); console.log(result); } catch (e) { console.log(e); } } putBucketWebsite();ミラーリングベースのオリジンフェッチ構成の取得
次のコードは、ミラーリングベースのオリジンフェッチ構成を取得する方法を示しています。
const OSS = require('ali-oss') constpath=require("path") const client = new OSS({ // バケットが配置されているリージョンに region を設定します。 たとえば、バケットが中国 (杭州) リージョンにある場合は、region を oss-cn-hangzhou に設定します。 region: 'yourRegion', // 環境変数からアクセス認証情報を取得します。 このサンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。 accessKeyId: process.env.OSS_ACCESS_KEY_ID, accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET, authorizationV4: true, // bucket をご利用のバケット名に設定します。 bucket: 'yourBucketName', }); // ミラーリングベースのオリジンフェッチ構成を取得します。 async function getBucketWebsite () { try { // バケット名を指定します (例: examplebucket)。 const result = await client.getBucketWebsite('examplebucket'); console.log(result); } catch (e) { console.log(e); } } getBucketWebsite();ミラーリングベースのオリジンフェッチ構成の削除
次のコードは、ミラーリングベースのオリジンフェッチ構成を削除する方法を示しています。
const OSS = require('ali-oss') constpath=require("path") const client = new OSS({ // バケットが配置されているリージョンに region を設定します。 たとえば、バケットが中国 (杭州) リージョンにある場合は、region を oss-cn-hangzhou に設定します。 region: 'yourRegion', // 環境変数からアクセス認証情報を取得します。 このサンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。 accessKeyId: process.env.OSS_ACCESS_KEY_ID, accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET, authorizationV4: true, // bucket をご利用のバケット名に設定します。 bucket: 'yourBucketName', }); // ミラーリングベースのオリジンフェッチ構成を削除します。 async function deleteBucketWebsite() { try { // バケット名を指定します (例: examplebucket)。 const result = await client.deleteBucketWebsite('examplebucket'); console.log(result); } catch (e) { console.log(e); } } deleteBucketWebsite();
関連ドキュメント
静的 Web サイトホスティングまたはミラーリングベースのオリジンフェッチの設定に使用される API 操作の詳細については、「PutBucketWebsite」をご参照ください。
静的 Web サイトホスティングまたはミラーリングベースのオリジンフェッチの構成の取得に使用される API 操作の詳細については、「GetBucketWebsite」をご参照ください。
静的 Web サイトホスティングまたはミラーリングベースのオリジンフェッチの構成の削除に使用される API 操作の詳細については、「DeleteBucketWebsite」をご参照ください。