2012-08-13 30 views
5

Tôi đang cố gắng xóa hình ảnh công khai (cannedACL thuộc tính của S3PutObjectRequest để tải hình ảnh lên là [S3CannedACL publicRead]) được tải lên một thùng S3.Làm thế nào để sử dụng AWS iOS SDK để xóa một đối tượng?

Có một lớp học S3DeleteObjectRequest trong AWS SDK documentation, nhưng dường như không có bất kỳ thuộc tính hoặc phương pháp khởi tạo nào cho this class.

Dựa trên mã mẫu bằng các ngôn ngữ khác, có vẻ như phải có thuộc tính key hoặc bucket hoặc phương pháp khởi tạo thiết lập các thuộc tính đó, như trong lớp S3PutObjectRequest của iOS SDK, được sử dụng để tải tệp lên thùng.

Điều gì đang xảy ra ở đây? SDK chỉ đơn giản là chưa hoàn thành? Có cách nào để xóa một đối tượng bằng SDK AWS của iOS không?

Trả lời

6

Chỉ cần tắt tài liệu bạn đã liên kết, nhưng việc này có hiệu quả không?

[s3Client deleteObjectWithKey:@"objectKey" withBucket:@"my-bucket"]; 
+0

hoạt động như một sự quyến rũ. Đoán tôi cần RTFM :) –

1

Nghệ thuật Câu trả lời của Gillespie cũng có tác dụng tốt với tôi.

Tuy nhiên, tôi cũng phát hiện ra rằng bạn có thể đạt được như vậy bằng cách thiết lập keybucket thuộc tính trên S3 xóa yêu cầu đối tượng:

S3DeleteObjectRequest *dor = [[S3DeleteObjectRequest alloc] init]; 
dor.key = AWS_OBJ_PATH; 
dor.bucket = AWS_BUCKET; 

[s3Client deleteObject:dor]; 
8

Đối với SDK iOS cho S3 V2, mã này đã có ích

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];

này được dựa rất nhiều vào các các bài kiểm tra đơn vị đã được viết cho thư viện tại đây: https://github.com/aws/aws-sdk-ios/blob/master/AWSS3Tests/AWSS3Tests.m

Các vấn đề liên quan