删除存储空间(Android SDK)

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

当存储空间(Bucket)不再需要或希望停止计费时,应删除该Bucket。由于OSS的费用主要来源于Bucket内部资源,而删除Bucket前系统强制要求清空所有内部资源,因此删除Bucket是确保您不会遗漏任何计费资源而产生意外费用的最可靠方式。请注意,删除后数据无法恢复,且Bucket名称释放后存在被他人占用的风险。若要完全停用整个OSS服务,则需删除您账号下的所有Bucket。

警告
  • 删除Bucket后,该Bucket名称会被释放,删除的Bucket名称存在被其他人占用的风险。若需保留名称,建议您清空Bucket内容而非删除Bucket。

  • 删除Bucket后,Bucket中的数据无法恢复,请在删除前确认数据已不再使用。如果需要继续使用Bucket中的数据,请提前做好备份。关于备份的更多信息,请参见备份 Bucket

注意事项

权限说明

阿里云账号默认拥有全部权限。阿里云账号下的RAM用户或RAM角色默认没有任何权限,需要阿里云账号或账号管理员通过RAM PolicyBucket Policy授予操作权限。

API

Action

说明

DeleteBucket

oss:DeleteBucket

删除Bucket。

说明

如果您在RAM Policy中拥有oss:DeleteBucket权限但仍然无法删除Bucket,则Bucket Policy可能包含授权效力为Denyoss:DeleteBucket权限。您必须将Deny修改为Allow或者直接删除此Bucket Policy,然后才能删除此Bucket。

示例代码

以下代码用于删除存储空间:

DeleteBucketRequest deleteBucketRequest = new DeleteBucketRequest("bucketName");

// 异步删除存储空间。
OSSAsyncTask deleteBucketTask = oss.asyncDeleteBucket(deleteBucketRequest, new OSSCompletedCallback<DeleteBucketRequest, DeleteBucketResult>() {
    @Override
    public void onSuccess(DeleteBucketRequest request, DeleteBucketResult result) {
        Log.d("asyncDeleteBucket", "Success!");
    }
    @Override
    public void onFailure(DeleteBucketRequest request, ClientException clientException, ServiceException serviceException) {
        // 请求异常。
        if (clientException != null) {
            // 本地异常,如网络异常等。
            clientException.printStackTrace();
        }
        if (serviceException != null) {
            // 服务异常。
            Log.e("ErrorCode", serviceException.getErrorCode());
            Log.e("RequestId", serviceException.getRequestId());
            Log.e("HostId", serviceException.getHostId());
            Log.e("RawMessage", serviceException.getRawMessage());
        }
    }
});

相关文档