tencent cloud

Cloud Object Storage

문서Cloud Object Storage

객체 삭제

Download
포커스 모드
폰트 크기
마지막 업데이트 시간: 2024-06-25 11:09:38

소개

본 문서는 객체의 삭제 작업에 대한 API 개요 및 SDK 예시 코드를 제공합니다.
API
작업명
작업 설명
단일 객체 삭제
버킷에서 지정 객체 삭제
다수의 객체 삭제
버킷에서 객체 일괄 삭제

SDK API 참조

SDK 모든 인터페이스의 구체적인 매개변수와 방법 설명은 SDK API를 참조하십시오.

객체 삭제

기능 설명

지정 객체를 삭제합니다(DELETE Object).

예시 코드1: 단일 객체 삭제

Objective-C
QCloudDeleteObjectRequest* deleteObjectRequest = [QCloudDeleteObjectRequest new];

// BucketName-APPID 포맷의 버킷 이름
deleteObjectRequest.bucket = @"examplebucket-1250000000";


// 객체 키는 객체의 COS 상의 전체 경로로, 디렉터리가 있을 경우 포맷은 'video/xxx/movie.mp4'입니다.
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 상의 전체 경로로, 디렉터리가 있을 경우 포맷은 'video/xxx/movie.mp4'입니다.
deleteObject.object = "exampleobject";

deleteObject.finishBlock = {(result, error)in
if let result = result {
// result에 응답 header 정보 포함
} else {
print(error!);
}
}
QCloudCOSXMLService.defaultCOSXML().deleteObject(deleteObject);
설명:
전체 예시는 GitHub를 참조하십시오.

예시 코드2: 디렉터리 삭제

Objective-C
QCloudGetBucketRequest* request = [QCloudGetBucketRequest new];
// BucketName-APPID 포맷의 버킷 이름
request.bucket = @"examplebucket-1250000000";
// 한 번에 반환 가능한 최대 항목 수, 기본값: 1000
request.maxKeys = 100;

//삭제할 디렉터리 이름: '/' 수반
request.prefix = @"prefix";

[request setFinishBlock:^(QCloudListBucketResult * result, NSError* error) {
if(! error){
NSMutableArray *deleteInfosArr = [NSMutableArray array];
for (QCloudBucketContents *content in result.contents) {
QCloudDeleteMultipleObjectRequest *delteRequest = [QCloudDeleteMultipleObjectRequest new];
delteRequest.bucket = request.bucket;

QCloudDeleteObjectInfo *object = [QCloudDeleteObjectInfo new];
object.key = content.key;
[deleteInfosArr addObject:object];
}

QCloudDeleteInfo *deleteInfos = [QCloudDeleteInfo new];
deleteInfos.objects = [deleteInfosArr copy];

QCloudDeleteMultipleObjectRequest *delteRequest = [QCloudDeleteMultipleObjectRequest new];
delteRequest.bucket = @"examplebucket-1250000000";
delteRequest.deleteObjects = deleteInfos;
[delteRequest setFinishBlock:^(QCloudDeleteResult *outputObject, NSError *error) {
NSLog(@"outputObject = %@",outputObject);
}];

[[QCloudCOSXMLService defaultCOSXML] DeleteMultipleObject:delteRequest];

}
}];

[[QCloudCOSXMLService defaultCOSXML] GetBucket:request];
설명:
전체 예시는 GitHub를 참조하십시오.
Swift
let getBucketReq = QCloudGetBucketRequest.init();

// BucketName-APPID 포맷의 버킷 이름
getBucketReq.bucket = "examplebucket-1250000000";

// 한 번에 반환 가능한 최대 항목 수, 기본값: 1000
getBucketReq.maxKeys = 100;

//삭제할 디렉터리 이름: '/' 수반
getBucketReq.prefix = "dir/";

getBucketReq.setFinish { (result, error) in
if let result = result {
let contents = result.contents;
let infos = NSMutableArray.init();
for content in contents {
let info = QCloudDeleteObjectInfo.init();
info.key = content.key;
infos.add(info);
}
let mutipleDel = QCloudDeleteMultipleObjectRequest.init();
// 삭제할 파일 집합
let deleteInfos = QCloudDeleteInfo.init();
// BucketName-APPID 포맷의 버킷 이름
mutipleDel.bucket = "examplebucket-1250000000";

deleteInfos.objects = infos as! [QCloudDeleteObjectInfo];

// Boolean 값, 이 값으로 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);
} else {
print(error!);
}
}
QCloudCOSXMLService.defaultCOSXML().getBucket(getBucketReq);
설명:
전체 예시는 GitHub를 참조하십시오.

다수의 객체 삭제

기능 설명

다수의 객체를 일괄 삭제합니다(DELETE Multiple Objects).

예시 코드1: 객체 일괄 삭제

Objective-C
QCloudDeleteMultipleObjectRequest* delteRequest = [QCloudDeleteMultipleObjectRequest new];
delteRequest.bucket = @"examplebucket-1250000000";

// 삭제할 단일 파일
QCloudDeleteObjectInfo* deletedObject0 = [QCloudDeleteObjectInfo new];

// 객체 키는 객체의 COS 상의 전체 경로로, 디렉터리가 있을 경우 포맷은 'video/xxx/movie.mp4'입니다.
deletedObject0.key = @"exampleobject";

// 삭제할 파일 집합
QCloudDeleteInfo* deleteInfo = [QCloudDeleteInfo new];

// Boolean 값, 이 값으로 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 상의 전체 경로로, 디렉터리가 있을 경우 포맷은 'video/xxx/movie.mp4'입니다.
info1.key = "exampleobject";

let info2 = QCloudDeleteObjectInfo.init();

// 삭제할 파일 집합
let deleteInfos = QCloudDeleteInfo.init();

// 삭제할 객체 정보를 보관할 배열
deleteInfos.objects = [info1,info2];

// Boolean 값, 이 값으로 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를 참조하십시오.

예시 코드2: 지정 접두사를 가진 객체 삭제

Objective-C
QCloudGetBucketRequest* request = [QCloudGetBucketRequest new];
// BucketName-APPID 포맷의 버킷 이름
request.bucket = @"examplebucket-1250000000";
// 한 번에 반환 가능한 최대 항목 수, 기본값: 1000
request.maxKeys = 100;

// 접두사가 prefix인 파일을 지정 삭제
request.prefix = @"prefix";

[request setFinishBlock:^(QCloudListBucketResult * result, NSError* error) {
if(! error){
NSMutableArray *deleteInfosArr = [NSMutableArray array];
for (QCloudBucketContents *content in result.contents) {
QCloudDeleteMultipleObjectRequest *delteRequest = [QCloudDeleteMultipleObjectRequest new];
delteRequest.bucket = request.bucket;

QCloudDeleteObjectInfo *object = [QCloudDeleteObjectInfo new];
object.key = content.key;
[deleteInfosArr addObject:object];
}

QCloudDeleteInfo *deleteInfos = [QCloudDeleteInfo new];
deleteInfos.objects = [deleteInfosArr copy];

QCloudDeleteMultipleObjectRequest *delteRequest = [QCloudDeleteMultipleObjectRequest new];
delteRequest.bucket = @"examplebucket-1250000000";
delteRequest.deleteObjects = deleteInfos;
[delteRequest setFinishBlock:^(QCloudDeleteResult *outputObject, NSError *error) {
NSLog(@"outputObject = %@",outputObject);
}];

[[QCloudCOSXMLService defaultCOSXML] DeleteMultipleObject:delteRequest];

}
}];

[[QCloudCOSXMLService defaultCOSXML] GetBucket:request];
설명:
전체 예시는 GitHub를 참조하십시오.
Swift
let getBucketReq = QCloudGetBucketRequest.init();

// BucketName-APPID 포맷의 버킷 이름
getBucketReq.bucket = "examplebucket-1250000000";

// 한 번에 반환 가능한 최대 항목 수, 기본값: 1000
getBucketReq.maxKeys = 100;

// 접두사가 prefix인 파일을 지정 삭제
getBucketReq.prefix = "dir/";


getBucketReq.setFinish { (result, error) in
if let result = result {
let contents = result.contents;
let infos = NSMutableArray.init();
for content in contents {
let info = QCloudDeleteObjectInfo.init();
info.key = content.key;
infos.add(info);
}
let mutipleDel = QCloudDeleteMultipleObjectRequest.init();
// 삭제할 파일 집합
let deleteInfos = QCloudDeleteInfo.init();
// BucketName-APPID 포맷의 버킷 이름
mutipleDel.bucket = "examplebucket-1250000000";

deleteInfos.objects = infos as! [QCloudDeleteObjectInfo];

// Boolean 값, 이 값으로 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);
} else {
print(error!);
}
}
QCloudCOSXMLService.defaultCOSXML().getBucket(getBucketReq);
설명:
전체 예시는 GitHub를 참조하십시오.

도움말 및 지원

문제 해결에 도움이 되었나요?

피드백