Updated on 2026-09-20 GMT+08:00

Deleting Object Tags

Function

This API is used to delete tags of an object. For more information about object tags, see Adding Tags to an Object.

If there is no object version ID (indicated by versionId) contained in the request, you must have the DeleteObjectTagging permission. If you specify a version ID in a request, make sure that you have the DeleteObjectTagging and DeleteObjectVersionTagging permissions. By default, only the object owner can perform this operation. The object owner can grant this permission to others by using a bucket policy or a user policy.

OBS deletes tags from the current object version by default. You can use the versionId parameter to delete tags from any other version. If the version is a delete marker, OBS returns 404 Not Found.

Restrictions

This API is not available for parallel file systems.

Method

obsClient.deleteObjectTagging(ObjectTaggingRequest request)

Request Parameters

Table 1 List of request parameters

Parameter

Type

Mandatory (Yes/No)

Description

request

ObjectTaggingRequest

Yes

Explanation:

Request parameters for deleting object tags. For details, see Table 2.

Table 2 ObjectTaggingRequest

Parameter

Type

Mandatory (Yes/No)

Description

bucketName

String

Yes

Explanation:

Bucket name.

Restrictions:

  • A bucket name must be unique across all accounts and regions.
  • A bucket name:
    • Must be 3 to 63 characters long and start with a digit or letter. Lowercase letters, digits, hyphens (-), and periods (.) are allowed.
    • Cannot be formatted as an IP address.
    • Cannot start or end with a hyphen (-) or period (.).
    • Cannot contain two consecutive periods (..), for example, my..bucket.
    • Cannot contain a period (.) and a hyphen (-) adjacent to each other, for example, my-.bucket or my.-bucket.
  • If you repeatedly create buckets with the same name in the same region, no error will be reported and the bucket properties comply with those set in the first creation request.

Default value:

None

objectKey

String

Yes

Explanation:

Object name. An object is uniquely identified by an object name in a bucket. An object name is a complete path of the object that does not contain the bucket name.

For example, if the address for accessing the object is examplebucket.obs.ap-southeast-1.myhuaweicloud.com/folder/test.txt, the object name is folder/test.txt.

Value range:

The value can contain 1 to 1,024 characters.

Default value:

None

versionId

String

No

Explanation:

Object version ID.

Value range:

The value must contain 32 characters.

Default value:

None

objectTagResult

ObjectTagResult

Yes when setting tags

Tags to be set on the object.

Table 3 ObjectTagResult

Parameter

Type

Mandatory (Yes/No)

Description

tagSet

TagSet

Yes

(when used as a request parameter)

Explanation:

Object tags that identify the objects the rule applies to. For details, see Table 4.

Default value:

None

statusCode

int

No

Explanation:

HTTP status code.

Value range:

A status code is a group of digits indicating the status of a response. It ranges from 2xx (indicating successes) to 4xx or 5xx (indicating errors).

For more information, see Status Code.

Default value:

None

responseHeaders

Map<String, Object>

No

Explanation:

HTTP response header list, composed of tuples. In a tuple, the String key indicates the name of the header, and the Object value indicates the value of the header.

Default value:

None

Table 4 TagSet

Parameter

Type

Mandatory (Yes/No)

Description

tags

List<Tag>

Yes

Explanation:

Object tag list. For details, see Table 5.

Table 5 Tag

Parameter

Type

Mandatory (Yes/No)

Description

key

String

Yes

Explanation:

Name of a tag.

Restrictions:

  • This parameter must not be left blank or contain unprintable ASCII characters (0–31) or the following special characters: =*<>\
  • The tag keys in the same bucket must be unique.
  • The value can be up to 36 characters long.

Default value:

None

value

String

Yes

Explanation:

Tag value.

Restrictions:

  • This parameter can be left blank, but if specified, cannot include unprintable ASCII characters (0–31) and the following special characters: =*<>\
  • The value can be up to 43 characters long.

Default value:

None

Responses

Table 6 Response headers

Method

Return Value Type

Description

deleteObjectTagging(ObjectTaggingRequest request)

HeaderResponse

Results returned for the request to delete object tags.

Table 7 Common response headers

Parameter

Type

Description

statusCode

int

Explanation:

HTTP status code.

Value range:

A status code is a group of digits that can be 2xx (indicating successes) or 4xx or 5xx (indicating errors). It indicates the status of a response.

For more information, see Status Code.

Default value:

None

responseHeaders

Map<String, Object>

Explanation:

HTTP response header list, composed of tuples. In a tuple, the String key indicates the name of the header, and the Object value indicates the value of the header.

Default value:

None

Sample Code

This example deletes the tags of object objectname in bucket examplebucket.

import android.util.Log;

import com.obs.services.ObsClient;
import com.obs.services.exception.ObsException;
import com.obs.services.model.HeaderResponse;
import com.obs.services.model.ObjectTaggingRequest;

public class DeleteObjectTaggingDemo {
    private static final String TAG = "DeleteObjectTaggingDemo";

    public void deleteObjectTagging() {
       // Hard-coded or plaintext AK and SK are risky. For security purposes, encrypt your AK and SK and store them in the configuration file or environment variables. In this example, the AK and SK are stored in environment variables for identity authentication. Before running the code in this example, configure environment variables ACCESS_KEY_ID and SECRET_ACCESS_KEY_ID.
        // Obtain an AK/SK pair on the management console.
        String ak = System.getenv("ACCESS_KEY_ID");
        String sk = System.getenv("SECRET_ACCESS_KEY_ID");
        // (Optional) If you are using a temporary AK/SK pair and a security token to access OBS, you are not advised to use hard coding, which may result in information leakage.
        // String securityToken = System.getenv("SECURITY_TOKEN");
        // Enter the endpoint corresponding to the bucket. CN North-Beijing4 is used here as an example. Replace it with the one currently in use.
        String endPoint = "https://your-endpoint";

        // Create an ObsClient instance.
        ObsClient obsClient = new ObsClient(ak, sk, endPoint);

        try {
            // Delete object tags.
            String bucketName = "examplebucket";
            String objectKey = "objectname";
            String objectVersionId = "";
            ObjectTaggingRequest objectTaggingRequest =
                    new ObjectTaggingRequest(bucketName, objectKey, objectVersionId, null);
            HeaderResponse response = obsClient.deleteObjectTagging(objectTaggingRequest);
            Log.i(TAG, "DeleteObjectTagging successfully");
            Log.i(TAG, "HTTP Code:" + response.getStatusCode());
        } catch (ObsException e) {
            Log.e(TAG, "DeleteObjectTagging failed");
            // Request failed. Print the HTTP status code.
            Log.e(TAG, "HTTP Code:" + e.getResponseCode());
            // Request failed. Print the server-side error code.
            Log.e(TAG, "Error Code:" + e.getErrorCode());
            // Request failed. Print the error details.
            Log.e(TAG, "Error Message:" + e.getErrorMessage());
            // Request failed. Print the request ID.
            Log.e(TAG, "Request ID:" + e.getErrorRequestId());
            Log.e(TAG, "Host ID:" + e.getErrorHostId());
        } catch (Exception e) {
            Log.e(TAG, "DeleteObjectTagging failed");
            // Print other error information.
            Log.e(TAG, e.getMessage());
        }
    }
}