Swift AWS S3上传响应为200但未上传图像

时间:2016-09-09 06:14:53

标签: ios swift amazon-s3 nsurlsession

我正在尝试使用服务器创建的签名网址从我的iOS应用上传图片。使用签名网址执行 S3上传时,我收到HTTP 200响应。但是,当我从浏览器中检查图像URL时,我得到了一张损坏的图像。我认为HTTPBODY出了问题。我正在寻找使用AWS sdk的解决方案。

let imageData = UIImagePNGRepresentation(image)

.........

request.setValue("image/png", forHTTPHeaderField: "Content-Type")
request.setValue("public-read", forHTTPHeaderField: "x-amz-acl")
request.setValue("*", forHTTPHeaderField: "Access-Control-Allow-Origin")
request.HTTPBody = params.objectForKey("imageData") as? NSData

我甚至尝试过对数据进行编码,但没有任何效果。

let imageBase64= imageData!.base64EncodedStringWithOptions(.Encoding64CharacterLineLength)

有人能说出代码有什么问题吗?

1 个答案:

答案 0 :(得分:0)

可以请将Image转换为jpg,然后尝试上传。

如果您能够在浏览器上看到损坏的图像,则可能是尺寸问题。

请尝试

let data = UIImageJPEGRepresentation(image, 0.5)

您也可以检查s3上传的任何尺寸限制。

希望这会对你有所帮助。