0

我使用以下代码将图像上传到 AWS S3:

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *filePath = [[paths objectAtIndex:0] stringByAppendingPathComponent:pathComp];
    [UIImageJPEGRepresentation(myImage,0.9) writeToFile:filePath atomically:NO];
    filePath = [NSString stringWithFormat:@"file:///private%@", filePath];
    NSURL* fileUrl = [NSURL URLWithString:filePath];
    AWSS3TransferManagerUploadRequest *uploadRequest = [AWSS3TransferManagerUploadRequest new];
    uploadRequest.key = key;
    uploadRequest.body = fileUrl;
    uploadRequest.contentType = @"image/jpeg";

它上传正常,但在机械土耳其人我无法打开预览

This page contains the following errors:

error on line 1 at column 1: Document is empty
error on line 1 at column 1: Encoding error
Below is a rendering of the page up to the first error. 
4

2 回答 2

0

使用 创建文件 URL 时NSURL,您应该使用+ fileURLWithPath:. 你应该改变这一行

NSURL* fileUrl = [NSURL URLWithString:filePath];

NSURL* fileUrl = [NSURL fileURLWithPath:filePath];

您应该使用AWS 管理控制台仔细检查文件是否已成功上传。

此外,默认情况下,所有 Amazon S3 资源(存储桶、对象和相关子资源)都是私有的:只有资源所有者(即创建它的 AWS 账户)可以访问该资源。您可以修改ACL以更改权限。

于 2015-01-15T20:36:54.907 回答
0

PaulTaykalo 为 AWS SDK v2 找到了解决方案

https://github.com/aws/aws-sdk-ios/issues/10

固定方法链接 http://pastie.org/9340740

还将此代码添加到 swizzled 方法中

[headers setValue:contentType forKey:@"Content-Type"];

于 2015-02-03T14:27:48.700 回答