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

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

最終更新日:Nov 19, 2024

バケットの静的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({
      // Specify the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the region to oss-cn-hangzhou. 
      region: 'yourRegion',
      // Obtain access credentials from environment variables. Before you run the sample code, make sure that you have configured environment variables OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET. 
      accessKeyId: process.env.OSS_ACCESS_KEY_ID,
      accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
      authorizationV4: true,
      // Specify the name of the bucket.
      bucket: 'yourBucketName',  
    });
    
    // Configure static website hosting. 
    async function putBucketWebsite () {
      try {
        // Specify the name of the bucket. Example: examplebucket.     
        const result = await client.putBucketWebsite('examplebucket', {
        // Specify the default homepage of the static website that is hosted on the bucket. 
        index: 'index.html',
        // Specify the default 404 page of the static website that is hosted on the bucket. 
        error: 'error.html'
      });
       console.log(result);
      } catch (e) {
        console.log(e);
      }
    }
    
    putBucketWebsite();            
  • 静的Webサイトホスティング設定の照会

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

    const OSS = require('ali-oss')
    
    const client = new OSS({
      // Specify the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the region to oss-cn-hangzhou. 
      region: 'yourRegion',
      // Obtain access credentials from environment variables. Before you run the sample code, make sure that you have configured environment variables OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET. 
      accessKeyId: process.env.OSS_ACCESS_KEY_ID,
      accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
      authorizationV4: true,
      // Specify the name of the bucket.
      bucket: 'yourBucketName',
    });
    
    // Query the default homepage and default 404 page of the static website that is hosted on the bucket. 
    async function getBucketWebsite () {
      try {
        // Specify the name of the bucket. Example: 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({
      // Specify the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the region to oss-cn-hangzhou. 
      region: 'yourRegion',
      // Obtain access credentials from environment variables. Before you run the sample code, make sure that you have configured environment variables OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET. 
      accessKeyId: process.env.OSS_ACCESS_KEY_ID,
      accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
      authorizationV4: true,
      // Specify the name of the bucket.
      bucket: 'yourBucketName',  
    });
    
    // Delete the static website hosting configurations. 
    async function deleteBucketWebsite() {
      try {
        // Specify the name of the bucket. Example: examplebucket. 
        const result = await client.deleteBucketWebsite('examplebucket');
        console.log(result);
      } 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({
      // Specify the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the region to oss-cn-hangzhou. 
      region: 'yourRegion',
      // Obtain access credentials from environment variables. Before you run the sample code, make sure that you have configured environment variables OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET. 
      accessKeyId: process.env.OSS_ACCESS_KEY_ID,
      accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
      authorizationV4: true,
      // Specify the name of the bucket.
      bucket: 'yourBucketName',  
    });
    
    async function putBucketWebsite() {
      try {
        // Specify the name of the bucket. Example: examplebucket. 
        const result = await client.putBucketWebsite("examplebucket", {
          // Specify the default homepage of the static website that is hosted on the bucket. 
          index: "index.html",
          // Specify the default 404 page of the static website that is hosted on the bucket. 
          error: "error.html",
          // Specify whether to redirect the requester to the default homepage in the subdirectory when the subdirectory is accessed. 
          // supportSubDir:true ,
          // Specify the operation that you want to perform when the default homepage is specified and the non-existing object whose name does not end with a forward slash (/) is accessed. This parameter takes effect only when SupportSubDir is set to true. 
          // type: 0 ,
          routingRules: [
             { RuleNumber: 1,
                 // Specify the prefix that is contained in the object names. Only the objects whose names contain the specified prefix match the rule. 
                 Condition: { KeyPrefixEquals: "examplefolder/" ,
                              // Specify the HTTP status code. The rule is matched only if the specified object is requested and HTTP status code 404 is returned. 
                              HttpErrorCodeReturnedEquals: 404
                            },
                 // Specify the redirection type. 
                 Redirect: { RedirectType: "Mirror",
                             // Specify whether to include the request parameters when the redirection rule or the mirroring-based back-to-origin rule is triggered. 
                             PassQueryString: true,
                             // Specify the URL of the origin for mirroring-based back-to-origin. 
                             MirrorURL: 'http://example.com/',                         
                             // Specify whether to use MirrorPassQueryString. This parameter is used in the same manner as the PassQueryString parameter and is assigned a higher priority than the PassQueryString parameter. This parameter takes effect only when RedirectType is set to Mirror. 
                             MirrorPassQueryString:true,
                             // Specify whether to redirect the requester to the address that is specified by the Location parameter if the origin returns a 3xx HTTP status code. This parameter takes effect only when RedirectType is set to Mirror. If you set MirrorFollowRedirect to true, OSS redirects the requester to the address that is specified by the Location parameter. 
                             MirrorFollowRedirect:true,
                             // Specify whether to check the MD5 hash of the body of the response that is returned by the origin. 
                             MirrorCheckMd5:false,
                             // Specify the headers that are included in the request when you use mirroring-based back-to-origin. 
                             // Specify whether to pass through all request headers except the following header to the origin. 
                             MirrorHeaders:{ PassAll: true,
                                             // Configure the Pass parameter to specify the headers that you want to pass through to the origin. 
                                             Pass:'myheader-key1',
                                             Pass:'myheader-key2',
                                             // Configure the Remove parameter to specify the headers that cannot be passed through to the origin. 
                                             Remove:'myheader-key3',
                                             Remove:'myheader-key4'}
                            }}
           ] 
        });
        console.log(result);
      } catch (e) {
        console.log(e);
      }
    }
    
    putBucketWebsite();
  • ミラーリングベースのback-to-origin設定の照会

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

    const OSS = require('ali-oss')
    constpath=require("path")
    
    const client = new OSS({
      // Specify the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the region to oss-cn-hangzhou. 
      region: 'yourRegion',
      // Obtain access credentials from environment variables. Before you run the sample code, make sure that you have configured environment variables OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET. 
      accessKeyId: process.env.OSS_ACCESS_KEY_ID,
      accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
      authorizationV4: true,
      // Specify the name of the bucket.
      bucket: 'yourBucketName',    
    });
    
    // Query the mirroring-based back-to-origin configurations. 
    async function getBucketWebsite () {
      try {
        // Specify the name of the bucket. Example: examplebucket. 
        const result = await client.getBucketWebsite('examplebucket');
        console.log(result);
      } catch (e) {
        console.log(e);
      }
    }
    
    getBucketWebsite();            
  • ミラーリングベースのback-to-origin設定の削除

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

    const OSS = require('ali-oss')
    constpath=require("path")
    
    const client = new OSS({
      // Specify the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the region to oss-cn-hangzhou. 
      region: 'yourRegion',
      // Obtain access credentials from environment variables. Before you run the sample code, make sure that you have configured environment variables OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET. 
      accessKeyId: process.env.OSS_ACCESS_KEY_ID,
      accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
      authorizationV4: true,
      // Specify the name of the bucket.
      bucket: 'yourBucketName',  
    });
    
    // Delete the mirroring-based back-to-origin configurations. 
    async function deleteBucketWebsite() {
      try {
        // Specify the name of the bucket. Example: examplebucket. 
        const result = await client.deleteBucketWebsite('examplebucket');
        console.log(result);
      } catch (e) {
        console.log(e);
      }
    }
    
    deleteBucketWebsite();            

関連ドキュメント

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

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

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