1

我已经设法使用 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 为零。

- (void) request:(AmazonServiceRequest *)request didCompleteWithResponse:(AmazonServiceResponse *)response {
            NSData *data = response.body;
            UIImage *img = [UIImage imageWithData:data];
            // further processing goes on here
}
4

1 回答 1

1

您看到的日志消息是因为 S3TransferManager 创建了一个临时元数据文件,因此如果传输暂停或中断,它可以恢复。此元数据文件将在下载完成后删除。实际文件应下载到您指定的 targetFilePath。它只是您关心的日志行还是文件没有下载到 targetFilePath?

此博客文章描述了最新的 S3TransferManager 功能,可能对您有用:http: //mobile.awsblog.com/post/Tx2W0CZSJXOFBEU/Download-Pause-and-Resume-with-the-S3TransferManager-for-iOS

于 2013-11-18T19:48:44.787 回答