1
我試圖使用以下代碼上傳圖像時收到請求超時。奇怪的是,我甚至沒有收到S3的失敗回覆。無法使用Alamofire直接上傳到S3
[Request]: <NSMutableURLRequest: 0x12d958f20> { URL: https://[redacted].s3.amazonaws.com/96d5b0e9-4606-4a8d-bd22-8d30f840361a/611ad69fb0452bd7c806886cf6404b34-original.png?AWSAccessKeyId=[redacted]&Content-Type=image%2Fpng&Expires=1453484324&Signature=[redacted]&x-amz-acl=public-read }
[Response]: nil
[Data]: 0 bytes
[Result]: FAILURE: Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo={NSUnderlyingError=0x12d946590 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, NSErrorFailingURLStringKey=https://[redacted].s3.amazonaws.com/96d5b0e9-4606-4a8d-bd22-8d30f840361a/611ad69fb0452bd7c806886cf6404b34-original.png?AWSAccessKeyId=[redacted]&Content-Type=image%2Fpng&Expires=1453484324&Signature=[redacted]&x-amz-acl=public-read, NSErrorFailingURLKey=https://[redacted].s3.amazonaws.com/96d5b0e9-4606-4a8d-bd22-8d30f840361a/611ad69fb0452bd7c806886cf6404b34-original.png?AWSAccessKeyId=[redacted]&Content-Type=image%2Fpng&Expires=1453484324&Signature=[redacted]&x-amz-acl=public-read, _kCFStreamErrorDomainKey=4, _kCFStreamErrorCodeKey=-2102, NSLocalizedDescription=The request timed out.}
class func avatar (uploadURL: String, avatar: UIImage, callback: (String?) -> ()) {
print("Upload to \(uploadURL)")
Alamofire.upload(.POST, uploadURL, multipartFormData: { multipartFormData in
if let imageData = UIImagePNGRepresentation(avatar) {
multipartFormData.appendBodyPart(data: imageData, name: "file", fileName: "file.png", mimeType: "image/png")
}
}, encodingCompletion: { encodingResult in
print("Encoded")
switch encodingResult {
case .Success(let upload, _, _):
print("About to Upload")
upload.responseJSON { response in
print("Status code: \(response.response?.statusCode)")
print(response.debugDescription)
switch response.result {
case .Success:
callback("url")
case .Failure:
callback(nil)
}
}
case .Failure(let encodingError):
print("===== ERROR ENCODING PNG =====")
print(encodingError)
}
})
}