删除数据
更新时间:2022-08-03
概述
删除数据即删除存储空间(Bucket)中的文件(Object),BOS 允许您执行如下删除操作:
- 单个删除:删除某个指定的 Object。
- 批量删除:单次请求最多删除 1000 个 Object 。
- 自动删除:如果您需要删除的 Object 数目很多,而且删除的 Object 有一定的规律,例如定期删除某些天之前的 Object ,或者是要清空整个 Bucket,推荐使用生命周期管理来自动删 除 Object 。设置了生命周期规则之后,BOS 会根据规则自动删除到期的 Object,从而极大减少您发送删除请求的次数,提高删除效率。
操作方式
BOS 同时支持使用 API 与 SDK 的方式来删除,具体如下:
- 使用 DeleteObject API 接口删除单个Object
- 使用 DeleteMultipleObjects API 接口批量删除
-
使用 SDK 删除 Object:
示例
下面是 Java SDK 删除 Object 的代码示例,具体如下:
删除单个 Object:
public void deleteObject(BosClient client, String bucketName, String objectKey) {
// 删除Object
client.deleteObject(bucketName, objectKey);
}
批量删除 Object ,可参考如下两种方法删除多个 Object :
// 1、以Json格式的字符串
String jsonObjectKeys = "{\"objects\": ["+"{\"key\": \"token1.h\"},"+"{\"key\": \"token2.h\"}"+"]}";
DeleteMultipleObjectsRequest request = new DeleteMultipleObjectsRequest();
request.setBucketName("yourBucketName");
request.setJsonDeleteObjects(jsonObjectKeys);
client.deleteMultipleObjects(request);
// 2、用户只需指定指定参数即可
List<String> objectKeys = new ArrayList<String>();
objectKeys.add("object1");
objectKeys.add("object2");
DeleteMultipleObjectsRequest request = new DeleteMultipleObjectsRequest();
request.setBucketName("yourBucketName");
request.setObjectKeys(objectKeys);
DeleteMultipleObjectsResponse response = client.deleteMultipleObjects(request);
注意:
- 支持一次请求内最多删除 1000 个 Object。 消息体(body)不超过 2M。 返回的消息体中只包含删除过程中出错的 Object 结果;如果所有 Object 都删除都成功的话,则没有消息体。