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

Enabling Bucket Logging

You can call ObsClient.setBucketLogging to enable bucket logging.

  • The source bucket and target bucket of logging must be in the same region.
  • If the bucket is in the OBS Warm or Cold storage class, it cannot be used as the target bucket.

Enabling Bucket Logging

Sample code:

// Create an ObsClient instance.
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'
});

// Configure logging for the bucket.
obsClient.setBucketLogging({
    Bucket:'bucketname',
    // Name of the agency created on IAM.
    Agency: 'Agency name'
    LoggingEnabled:{
        // Name of the bucket for storing the generated log file.
        TargetBucket: 'logBucketName',
        // Specify the name prefix of the generated log file.
        TargetPrefix: 'logs/',
    }
}, function(err, result) {
    if(err){
        console.log('Error-->' + err);
    }else{
        console.log('Status-->' + result.CommonMsg.Status);
    }
});

Use the LoggingEnabled parameter to configure logging for a bucket.

Setting ACLs for Objects to Be Logged

Sample code:
// Create an ObsClient instance.
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'
});

// Configure logging for the bucket.
obsClient.setBucketLogging({
    Bucket:'bucketname',
    // Name of the OBS agency created by the owner of the target bucket on IAM.
    Agency: 'Agency name',
    LoggingEnabled:{
        // Name of the bucket for storing the generated log file.
        TargetBucket: 'LogBucketName',
        // Specify the name prefix of the generated log file.
        TargetPrefix: 'logs/',
        TargetGrants:[
            // Grant all users the READ permission on the logs.
           { Grantee:{Type:'Group',URI:obsClient.enums.GroupAllUsers},Permission:obsClient.enums.PermissionRead },
            // Grant all users the WRITE permission on the logs.
           { Grantee:{Type:'Group',URI:obsClient.enums.GroupAllUsers},Permission:obsClient.enums.PermissionWrite }
        ]
     }
}, function(err, result) {
    if(err){
        console.log('Error-->' + err);
    }else{
        console.log('Status-->' + result.CommonMsg.Status);
    }
});