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

Deleting Objects

Deleting a Single Object

You can call ObsClient.deleteObject to delete a single object. Sample code is as follows:

// 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.deleteObject({
       Bucket: 'bucketname',
       Key : 'objectname'
}, function (err, result) {
       if(err){
              console.log('Error-->' + err);
       }else{
              console.log('Status-->' + result.CommonMsg.Status);
       }
});

Deleting Objects in a Batch

You can call ObsClient.deleteObjects to delete objects in a batch.

A maximum of 1000 objects can be deleted each time. Two response modes are supported: verbose (detailed) and quiet (brief).

  • In verbose mode (default mode), the returned response includes the deletion result of each requested object.
  • In quiet mode, the returned response includes only results of objects failed to be deleted.

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.deleteObjects({ 
       Bucket: 'bucketname', 
       // Set the response mode to verbose.
       Quiet : false, 
       Objects : [{Key:'objectname1'},{Key:'objectname2'}, {Key : 'objectname3'}] 
}, function (err, result) { 
       if(err){ 
              console.log('Error-->' + err); 
       }else{ 
              console.log('Status-->' + result.CommonMsg.Status); 
              if(result.CommonMsg.Status < 300 && result.InterfaceResult){
                // Obtain the successfully deleted objects.
                console.log('Deleteds:'); 
                for(var i in result.InterfaceResult.Deleteds){ 
                       console.log('Deleted[' + i + ']:'); 
                       console.log('Key-->'+result.InterfaceResult.Deleteds[i]['Key']); 
                       console.log('VersionId-->' + result.InterfaceResult.Deleteds[i]['VersionId']); 
                } 
                // Obtain information about objects that were not deleted.
                console.log('Errors:'); 
                for(var i in result.InterfaceResult.Errors){ 
                       console.log('Error[' + i + ']:'); 
                       console.log('Key-->' + result.InterfaceResult.Errors[i]['Key']); 
                       console.log('VersionId-->' + result.InterfaceResult.Errors[i]['VersionId']); 
                } 
              }
       } 
});

Use the Quiet parameter to specify the response mode and the Objects parameter to specify the to-be-deleted objects.