すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:静的Webサイトホスティング (ミラーリングベースのback-to-origin)

最終更新日:Dec 18, 2023

バケットの静的Webサイトホスティングを有効にし、ミラーリングベースのback-to-originルールを設定できます。 バケットで静的Webサイトをホストした後、バケットにアクセスしてWebサイトにアクセスできます。 指定したインデックスページまたはエラーページに自動的にリダイレクトされます。 ミラーリングベースのback-to-originルールを設定して有効にすると、ミラーリングベースのback-to-originを使用して、データをObject Storage Service (OSS) にシームレスに移行できます。

静的 Web サイトホスティング

静的webサイトは、クライアントで実行できるJavaScriptコードなどのスクリプトを含む、すべてのwebページが静的コンテンツのみで構成されるwebサイトです。 静的Webサイトホスティング機能を使用して、静的WebサイトをOSSバケットでホストし、バケットのドメイン名を使用してWebサイトにアクセスできます。

  • 静的 Web サイトホスティングの設定

    次のコードは、静的Webサイトホスティングを構成する方法の例を示しています。

    const OSS = require('ali-OSS ')
    
    const client = new OSS({
      // バケットが配置されているリージョンを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンをoss-cn-Hangzhouに設定します。 
      リージョン: 'yourRegion' 、
      // 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、環境変数OSS_ACCESS_KEY_IDとOSS_ACCESS_KEY_SECRETが設定されていることを確認してください。 
      accessKeyId: process.env.OSS_ACCESS_KEY_ID、
      accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET、});
    
    // 静的Webサイトホスティングを設定します。 
    async関数putBucketWebsite () {
      try {
        // バケットの名前を指定します。 例: examplebucket.     
        const result = await client.putBucketWebsite('examplebucket', {
        // バケットでホストされている静的Webサイトのデフォルトのホームページを指定します。 
        インデックス: 'index.html '、
        // バケットでホストされている静的Webサイトのデフォルトの404ページを指定します。 
        エラー: 'error.html'
      });
       console.log (結果);
      } catch (e) {
        console.log(e);
      }
    }
    
    putBucketWebsite(); 
  • 静的Webサイトホスティング設定の照会

    次のコードは、静的Webサイトホスティング設定を照会する方法の例を示しています。

    const OSS = require('ali-OSS ')
    
    const client = new OSS({
      // バケットが配置されているリージョンを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンをoss-cn-Hangzhouに設定します。 
      リージョン: 'yourRegion' 、
      // 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、環境変数OSS_ACCESS_KEY_IDとOSS_ACCESS_KEY_SECRETが設定されていることを確認してください。 
      accessKeyId: process.env.OSS_ACCESS_KEY_ID、
      accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET、});
    
    // バケットでホストされている静的Webサイトのデフォルトのホームページとデフォルトの404ページを照会します。 
    async関数getBucketWebsite () {
      try {
        // バケットの名前を指定します。 例: examplebucket. 
        const result = await client.getBucketWebsite('examplebucket');
        console.log (結果);
      } catch (e) {
        console.log(e);
      }
    }
    
    getBucketWebsite(); 
  • 静的Webサイトホスティング設定の削除

    次のコードは、静的Webサイトホスティング設定を削除する方法の例を示しています。

    const OSS = require('ali-OSS ')
    
    const client = new OSS({
      // バケットが配置されているリージョンを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンをoss-cn-Hangzhouに設定します。 
      リージョン: 'yourRegion' 、
      // 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、環境変数OSS_ACCESS_KEY_IDとOSS_ACCESS_KEY_SECRETが設定されていることを確認してください。 
      accessKeyId: process.env.OSS_ACCESS_KEY_ID、
      accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET、});
    
    // 静的Webサイトホスティング設定を削除します。 
    async関数deleteBucketWebsite() {
      try {
        // バケットの名前を指定します。 例: examplebucket. 
        const result = await client.de leteBucketWebsite('examplebucket');
        console.log (結果);
      } catch (e) {
        console.log(e);
      }
    }
    
    deleteBucketWebsite(); 

ミラーリングベースのback-to-origin

ミラーリングベースのback-to-originを使用すると、データをOSSにシームレスに移行できます。 たとえば、サービスを中断することなく、自己管理オリジンまたは別のクラウドサービスからOSSにサービスを移行できます。 移行中にミラーリングベースのback-to-originルールを使用して、OSSに移行されていないデータを取得できます。 これにより、ビジネスの継続性が確保されます。

  • ミラーリングベースのback-to-originの設定

    リクエスタが指定されたバケット内のオブジェクトにアクセスしようとしたが、そのオブジェクトが存在しない場合、オリジンおよびback-to-origin条件でオブジェクトのURLを指定して、リクエスタがオリジンからオブジェクトを取得できるようにすることができます。 たとえば、examplebucketという名前のバケットは、中国 (杭州) リージョンにあります。 リクエスタがバケットのルートディレクトリのexamplefolderディレクトリにあるオブジェクトにアクセスしようとしたが、そのオブジェクトが存在しない場合、リクエスタはそのオリジンにリダイレクトされ、https://www.example.com/ オリジンのexamplefolderディレクトリに格納されている必要なオブジェクトにアクセスします。

    次のコードは、上記のシナリオでミラーリングベースのback-to-originを設定する方法の例を示しています。

    const OSS = require('ali-OSS ')
    constpath=require("path")
    
    const client = new OSS({
      // バケットが配置されているリージョンを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンをoss-cn-Hangzhouに設定します。 
      リージョン: 'yourRegion' 、
      // 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、環境変数OSS_ACCESS_KEY_IDとOSS_ACCESS_KEY_SECRETが設定されていることを確認してください。 
      accessKeyId: process.env.OSS_ACCESS_KEY_ID、
      accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET、});
    
    async関数putBucketWebsite() {
      try {
        // バケットの名前を指定します。 例: examplebucket. 
        const result = await client.putBucketWebsite("examplebucket", {
          // バケットでホストされている静的Webサイトのデフォルトのホームページを指定します。 
          インデックス: "index.html" 、
          // バケットでホストされている静的Webサイトのデフォルトの404ページを指定します。 
          エラー: "error.html" 、
          // サブディレクトリにアクセスしたときに、リクエスト元をサブディレクトリのデフォルトのホームページにリダイレクトするかどうかを指定します。 
          // supportSubDir:true、
          // デフォルトのホームページが指定され、名前がスラッシュ (/) で終わらない存在しないオブジェクトがアクセスされたときに実行する操作を指定します。 このパラメーターは、SupportSubDirがtrueに設定されている場合にのみ有効です。 
          // type: 0,
          routingRules: [
             {RuleNumber: 1、
                 // オブジェクト名に含まれるプレフィックスを指定します。 指定されたプレフィックスを含む名前のオブジェクトのみがルールに一致します。 
                 条件: { KeyPrefixEquals: "examplefolder/",
                              // HTTPステータスコードを指定します。 ルールは、指定されたオブジェクトが要求され、HTTPステータスコード404が返された場合にのみ一致します。 
                              HttpErrorCodeReturnedEquals: 404
                            },
                 // リダイレクションタイプを指定します。 
                 リダイレクト: { RedirectType: "Mirror" 、
                             // リダイレクションルールまたはミラーリングベースのback-to-originルールがトリガーされたときにリクエストパラメーターを含めるかどうかを指定します。 
                             PassQueryString: true、
                             // ミラーリングベースのback-to-originのオリジンのURLを指定します。 
                             MirrorURL: 'http:// example.com/',                         
                             // MirrorPassQueryStringを使用するかどうかを指定します。 このパラメーターは、PassQueryStringパラメーターと同じ方法で使用され、PassQueryStringパラメーターよりも高い優先度が割り当てられます。 このパラメーターは、RedirectTypeがMirrorに設定されている場合にのみ有効です。 
                             MirrorPassQueryString:true、
                             // オリジンが3xx HTTPステータスコードを返す場合、Locationパラメーターで指定されたアドレスにリクエスタをリダイレクトするかどうかを指定します。 このパラメーターは、RedirectTypeがMirrorに設定されている場合にのみ有効です。 MirrorFollowRedirectをtrueに設定すると、OSSは、Locationパラメーターで指定されたアドレスにリクエスタをリダイレクトします。 
                             MirrorFollowRedirect:true、
                             // オリジンから返されるレスポンス本体のMD5ハッシュをチェックするかどうかを指定します。 
                             MirrorCheckMd5:false、
                             // ミラーリングベースのback-to-originを使用する場合、リクエストに含まれるヘッダーを指定します。 
                             // 次のヘッダーを除くすべてのリクエストヘッダーをオリジンに渡すかどうかを指定します。 
                             MirrorHeaders:{ PassAll: true、
                                             // Passパラメーターを設定して、オリジンに渡すヘッダーを指定します。 
                                             パス: 'myheader-key1' 、
                                             パス: 'myheader-key2' 、
                                             // Removeパラメーターを設定して、オリジンに渡すことができないヘッダーを指定します。 
                                             削除: 'myheader-key3' 、
                                             削除: 'myheader-key4'}
                            }}
           ] 
        });
        console.log (結果);
      } catch (e) {
        console.log(e);
      }
    }
    
    putBucketWebsite(); 
  • ミラーリングベースのback-to-origin設定の照会

    次のコードは、バケットのミラーリングベースのback-to-origin設定を照会する方法の例を示しています。

    const OSS = require('ali-OSS ')
    constpath=require("path")
    
    const client = new OSS({
      // バケットが配置されているリージョンを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンをoss-cn-Hangzhouに設定します。 
      リージョン: 'yourRegion' 、
      // 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、環境変数OSS_ACCESS_KEY_IDとOSS_ACCESS_KEY_SECRETが設定されていることを確認してください。 
      accessKeyId: process.env.OSS_ACCESS_KEY_ID、
      accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET、});
    
    // ミラーリングベースのback-to-origin設定を照会します。 
    async関数getBucketWebsite () {
      try {
        // バケットの名前を指定します。 例: examplebucket. 
        const result = await client.getBucketWebsite('examplebucket');
        console.log (結果);
      } catch (e) {
        console.log(e);
      }
    }
    
    getBucketWebsite(); 
  • ミラーリングベースのback-to-origin設定の削除

    次のコードは、バケットのミラーリングベースのback-to-origin設定を削除する方法の例を示しています。

    const OSS = require('ali-OSS ')
    constpath=require("path")
    
    const client = new OSS({
      // バケットが配置されているリージョンを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンをoss-cn-Hangzhouに設定します。 
      リージョン: 'yourRegion' 、
      // 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、環境変数OSS_ACCESS_KEY_IDとOSS_ACCESS_KEY_SECRETが設定されていることを確認してください。 
      accessKeyId: process.env.OSS_ACCESS_KEY_ID、
      accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET、});
    
    // ミラーリングベースのback-to-origin設定を削除します。 
    async関数deleteBucketWebsite() {
      try {
        // バケットの名前を指定します。 例: examplebucket. 
        const result = await client.de leteBucketWebsite('examplebucket');
        console.log (結果);
      } catch (e) {
        console.log(e);
      }
    }
    
    deleteBucketWebsite(); 

参考資料

  • 静的Webサイトホスティングまたはミラーリングベースのback-to-originを構成するために呼び出すことができるAPI操作の詳細については、「PutBucketWebsite」をご参照ください。

  • 静的Webサイトホスティング構成またはミラーリングベースのback-to-originルールを照会するために呼び出すことができるAPI操作の詳細については、「GetBucketWebsite」をご参照ください。

  • 静的Webサイトホスティング設定またはミラーリングベースのback-to-originルールを削除するために呼び出すことができるAPI操作の詳細については、「DeleteBucketWebsite」をご参照ください。