S3TransferManager を使用して、S3 サーバーに画像をアップロードすることができました。今、私は再び画像をダウンロードしようとしています。しかし、私はこのログメッセージを受け取り続けます。解決方法がわかりません。ファイルパスに問題があるようで、一時ファイルが作成されます。
[S3TransferManager filePath:]|531|File created to persist transfer request: /private/var/mobile/Applications/9CD874D1-2605-4067-949C-D373E917B85E/tmp/S3TransferDownloadRequests/000000000-individualframes-20131111T181238Z.plist
これが私が使用しているコードです。
- (void) downloadFramesFromURLS:(NSMutableArray *) urls {
for (NSString *string in urls) {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:string];
S3GetObjectRequest *req = [[S3GetObjectRequest alloc] initWithKey:string withBucket:@"individualframes"];
req.targetFilePath = filePath;
req.contentType = @"image/jpeg";
req.delegate = self;
[self.downLoadManager download:req];
}
}
[self.s3 getObject:req];
ダウンロードの代わりに実行すると問題なく[self.downLoadManager download:req];
動作しますが、アップロードと同じように転送マネージャーを使用したいと思います
更新: これは、デリゲート メソッドで使用しているコードの簡略化されたバージョンです。ダウンロードが完了したら、ダウンロードしたデータ ファイルを使用して、UIImage に戻します。転送マネージャーを使用すると、response.body が nil になります。
- (void) request:(AmazonServiceRequest *)request didCompleteWithResponse:(AmazonServiceResponse *)response {
NSData *data = response.body;
UIImage *img = [UIImage imageWithData:data];
// further processing goes on here
}