2012-08-13 15 views
5

私はS3バケットにアップロードされた公開画像(cannedACLS3PutObjectRequestの画像をアップロードするには[S3CannedACL publicRead]でした)を削除しようとしています。AWS iOS SDKを使用してオブジェクトを削除するにはどうすればよいですか?

AWS SDK documentationにはS3DeleteObjectRequestクラスがありますが、this classのプロパティや初期化メソッドはありません。バケットにファイルをアップロードするために使用のiOS SDKのS3PutObjectRequestクラス、であるとして、keyまたはbucketプロパティまたはこれらのプロパティを設定する初期化メソッドがあるべきよう

は、他の言語のサンプルコードに基づいて、それが見えます。

ここでは何が起こっていますか? SDKは不完全ですか? iOS AWS SDKを使用してオブジェクトを削除する方法はありますか?

答えて

6

あなたがリンクしているドキュメントを削除するだけですが、これは機能しませんか?

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

は魅力的に働いた。私はRTFMする必要があると思う:) –

1

Art Gillespieの回答は私にとってもうまくいきました。

しかし、私はまた、あなたがS3削除対象要求にkeybucket属性を設定することで、同じことを達成できることを発見した:

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

[s3Client deleteObject:dor]; 
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];

これは、に大きく基づいていますライブラリのためにここに書かれた単体テスト:https://github.com/aws/aws-sdk-ios/blob/master/AWSS3Tests/AWSS3Tests.m

関連する問題