2

XCode を使用して S3 からデータをダウンロードする方法がよくわかりません。これを行う方法についての助けをいただければ幸いです。S3から画像にアクセスするために次のコードを試しましたが、

AmazonCredentials *cred = [[Amazon alloc] initWithAccessKey:accessKey withSecretKey:secretAccessKey];
AmazonS3Client *s3 = [[AmazonS3Client alloc] initWithCredentials:cred];
S3GetObjectRequest *s3Request = [[S3GetObjectRequest alloc] initWithKey:urlPath      withBucket:bucket];
s3Request.delegate = self;
S3GetObjectResponse *s3Response = [s3 getObject:s3Request];

NSData*data = s3Response.body;
image = [UIImage imageWithData:data];

プログラムを実行すると、「EXC_BAD_ACCESS (コード = 2、アドレス = 0x0)」という例外が発生します。また、バケット名に正確に何を含めるかについてもわかりません。バケット文字列は「nameOfBucket」だけにする必要がありますか? または「topLevelFolder/nameOfBucket」のようなものですか?また、「urlPath」には具体的に何を含める必要がありますか? 私の例外は、おそらくバケット名と urlPath 名が正しくないことに関係していると思います。

編集: S3 からデータを取得していないことがわかりました。解決策は、「s3Request.delegate = self;」という行を削除することでした。

4

2 に答える 2

0

s3Request.delegate = self;デリゲートを割り当てると、AmazonS3Clientはメッセージをデリゲート メソッド ( AmazonServiceRequestDelegate) に送信し、メッセージをプリエンプトします。S3GetObjectResponse

最も一般的なデリゲート メソッドは次の 2 つです。

-(void)request:(AmazonServiceRequest *)request didCompleteWithResponse:(AmazonServiceResponse *)response
-(void)request:(AmazonServiceRequest *)request didFailWithError:(NSError *)error
于 2013-10-23T17:20:16.360 に答える