删除对象

最后更新时间:2020-08-24 16:37:26

    简介

    本文档提供关于对象的删除操作相关的 API 概览以及 SDK 示例代码。

    API 操作名 操作描述
    DELETE Object 删除单个对象 在存储桶中删除指定对象
    DELETE Multiple Object 删除多个对象 在存储桶中批量删除对象

    SDK API 参考

    SDK 所有接口的具体参数与方法说明,请参考 SDK API

    删除单个对象

    功能说明

    删除指定的对象(DELETE Object)。

    示例代码

    Objective-C

    QCloudDeleteObjectRequest* deleteObjectRequest = [QCloudDeleteObjectRequest new];
    
    // 存储桶名称,格式为 BucketName-APPID
    deleteObjectRequest.bucket = @"examplebucket-1250000000";
    
    // 对象键,是对象在 COS 上的完整路径,如果带目录的话,格式为 "dir1/object1"
    deleteObjectRequest.object = @"exampleobject";
    
    [deleteObjectRequest setFinishBlock:^(id outputObject, NSError *error) {
        // outputObject 包含所有的响应 http 头部
        NSDictionary* info = (NSDictionary *) outputObject;
    }];
    
    [[QCloudCOSXMLService defaultCOSXML] DeleteObject:deleteObjectRequest];

    说明:

    更多完整示例,请前往 GitHub查看。

    Swift

    let deleteObject = QCloudDeleteObjectRequest.init();
    
    // 存储桶名称,格式为 BucketName-APPID
    deleteObject.bucket = "examplebucket-1250000000";
    
    // 对象键,是对象在 COS 上的完整路径,如果带目录的话,格式为 "dir1/object1"
    deleteObject.object = "exampleobject";
    
    deleteObject.finishBlock = {(result,error)in
        if let result = result {
            // result 包含响应的 header 信息
        } else {
            print(error!);
        }
    }
    QCloudCOSXMLService.defaultCOSXML().deleteObject(deleteObject);

    说明:

    更多完整示例,请前往 GitHub 查看。

    删除多个对象

    功能说明

    批量删除多个对象(Delete Multi Objects)。

    示例代码

    Objective-C

    QCloudDeleteMultipleObjectRequest* delteRequest = [QCloudDeleteMultipleObjectRequest new];
    delteRequest.bucket = @"examplebucket-1250000000";
    
    // 要删除的单个文件
    QCloudDeleteObjectInfo* deletedObject0 = [QCloudDeleteObjectInfo new];
    
    // 对象键,是对象在 COS 上的完整路径,如果带目录的话,格式为 "dir1/object1"
    deletedObject0.key = @"exampleobject";
    
    // 要删除的文件集合
    QCloudDeleteInfo* deleteInfo = [QCloudDeleteInfo new];
    
    // 布尔值,这个值决定了是否启动 Quiet 模式:
    // true:启动 Quiet 模式
    // false:启动 Verbose 模式
    // 默认值为 False
    deleteInfo.quiet = NO;
    
    // 存放需要删除对象信息的数组
    deleteInfo.objects = @[deletedObject0];
    
    // 封装了需要批量删除的多个对象的信息
    delteRequest.deleteObjects = deleteInfo;
    
    [delteRequest setFinishBlock:^(QCloudDeleteResult* outputObject,
                                   NSError *error) {
        // 可以从 outputObject 中获取 response 中 etag 或者自定义头部等信息
    
    }];
    
    [[QCloudCOSXMLService defaultCOSXML] DeleteMultipleObject:delteRequest];

    说明:

    更多完整示例,请前往 GitHub查看。

    Swift

    let mutipleDel = QCloudDeleteMultipleObjectRequest.init();
    
    // 存储桶名称,格式为 BucketName-APPID
    mutipleDel.bucket = "examplebucket-1250000000";
    
    // 要删除的单个文件
    let info1 = QCloudDeleteObjectInfo.init();
    
    // 对象键,是对象在 COS 上的完整路径,如果带目录的话,格式为 "dir1/object1"
    info1.key = "exampleobject";
    
    let info2 = QCloudDeleteObjectInfo.init();
    
    // 要删除的文件集合
    let deleteInfos = QCloudDeleteInfo.init();
    
    // 存放需要删除对象信息的数组
    deleteInfos.objects = [info1,info2];
    
    // 布尔值,这个值决定了是否启动 Quiet 模式:
    // true:启动 Quiet 模式
    // false:启动 Verbose 模式
    // 默认值为 False
    deleteInfos.quiet = false;
    
    // 封装了需要批量删除的多个对象的信息
    mutipleDel.deleteObjects = deleteInfos;
    
    mutipleDel.setFinish { (result, error) in
        if let result = result {
            let deleted = result.deletedObjects
            let failed = result.deletedFailedObjects
        } else {
            print(error!);
        }
    }    
    QCloudCOSXMLService.defaultCOSXML().deleteMultipleObject(mutipleDel);

    说明:

    更多完整示例,请前往 GitHub查看。

    Was this page helpful?

    本页内容是否解决了您的问题?

    • 完全没帮助
    • 文档较差
    • 文档一般
    • 文档不错
    • 文档很好
    反馈
    帮助