Updated on 2026-01-16 GMT+08:00

Setting Website Hosting

You can call ObsClient.setBucketWebsite to set website hosting for a bucket.

Configuring the Default Homepage and Error Pages

Sample code:

// Create an instance of ObsClient.
var obsClient = new ObsClient({
    // Hard-coded or plaintext AK/SK are risky. For security purposes, encrypt your AK/SK and store them in the configuration file or environment variables. In this example, the AK/SK are stored in environment variables for identity authentication. Before running this example, configure environment variables AccessKeyID and SecretAccessKey.
    // The front-end code does not have the process environment variable, so you need to use a module bundler like webpack to define the process variable.
    // Obtain an AK/SK pair on the management console.
    access_key_id: process.env.AccessKeyID,
    secret_access_key: process.env.SecretAccessKey,
    server: 'https://your-endpoint'
});

obsClient.setBucketWebsite({
       Bucket: 'bucketname',
       // Configure the default homepage.
       IndexDocument:{Suffix:'index.html'},
       // Configure the error pages.
       ErrorDocument:{Key:'error.html'}
}, function (err, result) {
       if(err){
              console.log('Error-->' + err);
       }else{
              console.log('Status-->' + result.CommonMsg.Status);
       }
});

Configuring Redirection Rules

Sample code:

// Create an instance of ObsClient.
var obsClient = new ObsClient({
    // Hard-coded or plaintext AK/SK are risky. For security purposes, encrypt your AK/SK and store them in the configuration file or environment variables. In this example, the AK/SK are stored in environment variables for identity authentication. Before running this example, configure environment variables AccessKeyID and SecretAccessKey.
    // The front-end code does not have the process environment variable, so you need to use a module bundler like webpack to define the process variable.
    // Obtain an AK/SK pair on the management console.
    access_key_id: process.env.AccessKeyID,
    secret_access_key: process.env.SecretAccessKey,
    server: 'https://your-endpoint'
});

obsClient.setBucketWebsite({
       Bucket: 'bucketname',
       // Configure the default homepage.
       IndexDocument:{Suffix:'index.html'},
       // Configure the error pages.
       ErrorDocument:{Key:'error.html'},
       // Set redirection rules.
       RoutingRules:[
             
                     {
                           Condition:{HttpErrorCodeReturnedEquals:'404', KeyPrefixEquals: 'keyprefix'},
                           Redirect:{Protocol:'http',ReplaceKeyWith:'replacekeyprefix', HostName: 'www.example.com', HttpRedirectCode: '305'}
                     }
       ]
}, function (err, result) {
       if(err){
              console.log('Error-->' + err);
       }else{
              console.log('Status-->' + result.CommonMsg.Status);
       }
});

Use the RoutingRules parameter to specify redirection rules for a bucket.

Configuring Redirection for All Requests

Sample code:

// Create an instance of ObsClient.
var obsClient = new ObsClient({
    // Hard-coded or plaintext AK/SK are risky. For security purposes, encrypt your AK/SK and store them in the configuration file or environment variables. In this example, the AK/SK are stored in environment variables for identity authentication. Before running this example, configure environment variables AccessKeyID and SecretAccessKey.
    // The front-end code does not have the process environment variable, so you need to use a module bundler like webpack to define the process variable.
    // Obtain an AK/SK pair on the management console.
    access_key_id: process.env.AccessKeyID,
    secret_access_key: process.env.SecretAccessKey,
    server: 'https://your-endpoint'
});

obsClient.setBucketWebsite({
       Bucket: 'bucketname',
       RedirectAllRequestsTo : {HostName : 'www.example.com', Protocol : 'http'}
}, function (err, result) {
       if(err){
              console.log('Error-->' + err);
       }else{
              console.log('Status-->' + result.CommonMsg.Status);
       }
});

Use the RedirectAllRequestsTo parameter to set redirection rules for all requests for accessing a bucket.