tencent cloud

All product documents
Cloud Object Storage
Deleting Objects
Last updated: 2024-06-25 10:53:13
Deleting Objects
Last updated: 2024-06-25 10:53:13

Overview

This document provides an overview of APIs and SDK code samples related to object deletion.
API
Operation
Description
Deleting an object
Deletes an object from a bucket.
Deleting multiple objects
Deletes multiple objects from a bucket in a single request

SDK API References

For the parameters and method descriptions of all the APIs in the SDK, see SDK API Reference.

Deleting a Single Object

Description

This API (DELETE Object) is used to delete a specified object.

Sample code

String bucket = "examplebucket-1250000000"; // Bucket, formatted as BucketName-APPID
String cosPath = "exampleobject"; // The location identifier of the object in the bucket, i.e., the object key

DeleteObjectRequest deleteObjectRequest = new DeleteObjectRequest(bucket,
cosPath);
cosXmlService.deleteObjectAsync(deleteObjectRequest,
new CosXmlResultListener() {
@Override
public void onSuccess(CosXmlRequest cosXmlRequest, CosXmlResult result) {
DeleteObjectResult deleteObjectResult = (DeleteObjectResult) result;
}

// If you use the Kotlin language to call this, please note that the exception in the callback method is nullable; otherwise, the onFail method will not be called back, that is:
// clientException is of type CosXmlClientException? and serviceException is of type CosXmlServiceException?
@Override
public void onFail(CosXmlRequest cosXmlRequest,
@Nullable CosXmlClientException clientException,
@Nullable CosXmlServiceException serviceException) {
if (clientException != null) {
clientException.printStackTrace();
} else {
serviceException.printStackTrace();
}
}
});
Note:
For more samples, please visit GitHub.

Deleting Multiple Objects

Description

This API is used to delete multiple objects in a single request.

Sample code

// Bucket name in the format of BucketName-APPID (APPID is required), which can be viewed in the COS console at https://console.cloud.tencent.com/cos5/bucket
String bucket = "examplebucket-1250000000";
List<String> objectList = new ArrayList<String>();
objectList.add("exampleobject1"); // The location identifier of the object in the bucket, i.e., the object key
objectList.add("exampleobject2"); // The location identifier of the object in the bucket, i.e., the object key

DeleteMultiObjectRequest deleteMultiObjectRequest =
new DeleteMultiObjectRequest(bucket, objectList);
// In quiet mode, only information on objects that failed to be deleted will be returned; otherwise, the deletion result of each object will be returned.
deleteMultiObjectRequest.setQuiet(true);
cosXmlService.deleteMultiObjectAsync(deleteMultiObjectRequest,
new CosXmlResultListener() {
@Override
public void onSuccess(CosXmlRequest cosXmlRequest, CosXmlResult result) {
DeleteMultiObjectResult deleteMultiObjectResult =
(DeleteMultiObjectResult) result;
}

// If you use the Kotlin language to call this, please note that the exception in the callback method is nullable; otherwise, the onFail method will not be called back, that is:
// clientException is of type CosXmlClientException? and serviceException is of type CosXmlServiceException?
@Override
public void onFail(CosXmlRequest cosXmlRequest,
@Nullable CosXmlClientException clientException,
@Nullable CosXmlServiceException serviceException) {
if (clientException != null) {
clientException.printStackTrace();
} else {
serviceException.printStackTrace();
}
}
});
Note:
For more samples, please visit GitHub.

Deleting a Directory

Description

COS uses slashes (/) as the delimiter to show directories in order to achieve the effect of a file system. Therefore, if you want to delete a directory in COS, you need to delete objects that are prefixed with a specified value. For example, the directory prefix/ is actually all objects prefixed with prefix/. Therefore, you can delete all objects prefixed with prefix/ to delete the prefix/ directory.
Currently, COS’s Android SDK did not provide an API to perform this operation. However, you can still do it using a combination of basic operations.

Sample code

// Bucket name in the format of BucketName-APPID (APPID is required), which can be viewed in the COS console at https://console.cloud.tencent.com/cos5/bucket
String bucket = "examplebucket-1250000000";
String prefix = "folder1/"; // Specify a prefix.

GetBucketRequest getBucketRequest = new GetBucketRequest(bucket);
getBucketRequest.setPrefix(prefix);

// "prefix" indicates the directory to delete.
getBucketRequest.setPrefix(prefix);
// Set the maximum number of traversed objects (up to 1,000 per listobject request)
getBucketRequest.setMaxKeys(1000);
GetBucketResult getBucketResult = null;

do {
try{
getBucketResult = cosXmlService.getBucket(getBucketRequest);
List<ListBucket.Contents> contents = getBucketResult.listBucket.contentsList;
DeleteMultiObjectRequest deleteMultiObjectRequest = new DeleteMultiObjectRequest(bucket);
for (ListBucket.Contents content : contents) {
deleteMultiObjectRequest.setObjectList(content.key);
}
cosXmlService.deleteMultiObject(deleteMultiObjectRequest);
getBucketRequest.setMarker(getBucketResult.listBucket.nextMarker);
} catch (CosXmlClientException e) {
e.printStackTrace();
return;
} catch (CosXmlServiceException e) {
e.printStackTrace();
return;
}
} while (getBucketResult.listBucket.isTruncated);
Note:
For more samples, please visit GitHub.
Was this page helpful?
You can also Contact Sales or Submit a Ticket for help.
Yes
No

Feedback

Contact Us

Contact our sales team or business advisors to help your business.

Technical Support

Open a ticket if you're looking for further assistance. Our Ticket is 7x24 avaliable.

7x24 Phone Support
Hong Kong, China
+852 800 906 020 (Toll Free)
United States
+1 844 606 0804 (Toll Free)
United Kingdom
+44 808 196 4551 (Toll Free)
Canada
+1 888 605 7930 (Toll Free)
Australia
+61 1300 986 386 (Toll Free)
EdgeOne hotline
+852 300 80699
More local hotlines coming soon