Deleting a Bucket (SDK for Java)
Function
This API deletes an empty bucket. You can delete buckets you no longer use to free up space. The name of a deleted bucket can be reused for another bucket at least 30 minutes after the deletion.
![](https://support.huaweicloud.com/eu/sdk-java-devg-obs/public_sys-resources/note_3.0-en-us.png)
The data you proactively deleted from OBS cannot be recovered. Exercise caution when using this API.
Restrictions
- Only empty buckets can be deleted. An empty bucket means that:
- The bucket does not contain any object (including noncurrent versions and delete markers).
- The bucket does not contain any fragments, which means that there are no multipart uploads that have not been completed in the bucket.
- To delete a bucket, you must be the bucket owner or have the required permission (obs:bucket:DeleteBucket in IAM or DeleteBucket in a bucket policy). For details, see Introduction to OBS Access Control, IAM Custom Policies, and Creating a Custom Bucket Policy.
- Only empty buckets (without objects and part fragments) can be deleted.
- Bucket deletion is a non-idempotence operation and an error will be reported if the bucket you want to delete does not exist.
Method
obsClient.deleteBucket(String bucketName)
Request Parameters
Parameter |
Type |
Mandatory (Yes/No) |
Description |
---|---|---|---|
bucketName |
String |
Yes |
Explanation: Bucket name. Restrictions:
Default value: None |
Responses
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 |
Code Examples
This example deletes bucket exampleBucket.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
import com.obs.services.ObsClient; import com.obs.services.exception.ObsException; import com.obs.services.model.HeaderResponse; public class DeleteBucket001 { public static void main(String[] args) { // Obtain an AK/SK pair using environment variables or import the AK/SK pair in other ways. Using hard coding may result in leakage. // 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 advised not to use hard coding, which may result in information leakage. // Obtain an AK/SK pair and a security token using environment variables or import them in other ways. // String securityToken = System.getenv("SECURITY_TOKEN"); // Enter the endpoint corresponding to the bucket. EU-Dublin is used here as an example. Replace it with the one in your actual situation. String endPoint = "https://obs.eu-west-101.myhuaweicloud.eu"; // Obtain an endpoint using environment variables or import it in other ways. //String endPoint = System.getenv("ENDPOINT"); // Create an ObsClient instance. // Use the permanent AK/SK pair to initialize the client. ObsClient obsClient = new ObsClient(ak, sk,endPoint); // Use the temporary AK/SK pair and security token to initialize the client. // ObsClient obsClient = new ObsClient(ak, sk, securityToken, endPoint); try { // Example bucket name String exampleBucket = "examplebucket"; // Delete the bucket. HeaderResponse response = obsClient.deleteBucket(exampleBucket); System.out.println("DeleteBucket successfully"); System.out.println("StatusCode:"+response.getStatusCode()); System.out.println("RequestId:"+response.getRequestId()); } catch (ObsException e) { System.out.println("DeleteBucket failed"); // Request failed. Print the HTTP status code. System.out.println("HTTP Code:" + e.getResponseCode()); // Request failed. Print the server-side error code. System.out.println("Error Code:" + e.getErrorCode()); // Request failed. Print the error details. System.out.println("Error Message: " + e.getErrorMessage()); // Request failed. Print the request ID. System.out.println("Request ID:" + e.getErrorRequestId()); System.out.println("Host ID:" + e.getErrorHostId()); } catch (Exception e) { System.out.println("DeleteBucket failed"); // Print other error information. e.printStackTrace(); } } } |
Helpful Links
- Deleting an Object
- Managing Fragments
- Listing Objects and Listing Initiated Multipart Uploads in a Bucket. These two operations can help you determine whether a bucket is empty.
- Deleting Buckets
- (GitHub) Sample Code for Deleting a Bucket
- OBS Error Codes
- Why Can't I Delete a Bucket?
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.