如何使用AWS iOS SDK删除对象?

Tim*_*ber 5 iphone amazon-s3 amazon-web-services ipad ios

我正在尝试删除上传到S3存储桶的公共图像(上传图像的cannedACL属性).S3PutObjectRequest[S3CannedACL publicRead]

S3DeleteObjectRequestAWS SDK 文档中有一个类,但似乎没有此类的任何属性或初始化方法.

基于其他语言的示例代码,看起来应该有keybucket属性或初始化方法设置这些属性,就像在iOS SDK的S3PutObjectRequest类中一样,用于将文件上传到存储桶.

这里发生了什么?SDK完全不完整吗?有没有办法用iOS AWS SDK删除对象?

Luk*_*rts 8

对于适用于S3 V2的iOS SDK,此代码派上用场

AWSS3 *s3 = [AWSS3 defaultS3];
                AWSS3DeleteObjectRequest *deleteRequest = [AWSS3DeleteObjectRequest new];
                deleteRequest.bucket = S3BucketName;
                deleteRequest.key = climb.imageKey;
                [[[s3 deleteObject:deleteRequest] continueWithBlock:^id(BFTask *task) {
                    if(task.error != nil){
                        if(task.error.code != AWSS3TransferManagerErrorCancelled && task.error.code != AWSS3TransferManagerErrorPaused){
                            NSLog(@"%s Error: [%@]",__PRETTY_FUNCTION__, task.error);
                        }
                    }else{
                        // Completed logic here
                    }
                    return nil;
                }] waitUntilFinished];
Run Code Online (Sandbox Code Playgroud)

这主要基于为此库编写的单元测试:https://github.com/aws/aws-sdk-ios/blob/master/AWSS3Tests/AWSS3Tests.m


Art*_*pie 6

只是关闭你链接到的文档,但这不起作用?

[s3Client deleteObjectWithKey:@"objectKey" withBucket:@"my-bucket"];
Run Code Online (Sandbox Code Playgroud)