Ich habe ein Problem mit S3. Nach 3h der Fehlersuche (in der Zwischenzeit habe ich über IAM Rollen & verwaltet, um sie zu erstellen) Ich bin steckenbleiben versuchen, ein fb Profilbild zu Amazon S3 hochzuladen.Upload jpg zu S3: "Der Anfragetext wurde unerwartet beendet"
Mein Code:
if let imageData = NSData(contentsOf: NSURL(string: url) as! URL) {
let fileName = ProcessInfo.processInfo.globallyUniqueString + ".jpg"
let fileURL = NSURL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent(fileName)
let image = UIImage(data: imageData as Data)
let imageData = UIImageJPEGRepresentation(image!, 1.0)!
do {
try imageData.write(to: fileURL! as URL)
} catch _ {
self.log.error("Could not write to file.")
}
let transferManager = AWSS3TransferManager.default()
let uploadRequest = AWSS3TransferManagerUploadRequest()
uploadRequest?.bucket = "app-files"
uploadRequest?.key = "user-data/" + awsId! + "_primary_profile_picture.jpg"
uploadRequest?.body = fileURL!
transferManager.upload(uploadRequest!).continueWith(executor: AWSExecutor.mainThread(), block: { (task:AWSTask<AnyObject>) -> Any? in
if let error = task.error as? NSError {
if error.domain == AWSS3TransferManagerErrorDomain, let code = AWSS3TransferManagerErrorType(rawValue: error.code) {
switch code {
case .cancelled, .paused:
break
default:
print("Error uploading: \(uploadRequest?.key) Error: \(error)")
}
} else {
print("Error uploading: \(uploadRequest?.key) Error: \(error)")
}
return nil
}
let uploadOutput = task.result
print("Upload complete for: \(uploadRequest?.key)")
return nil
})
}
** ** Problem I kontinuierlich ein The request body terminated unexpectedly
Fehler von S3 bin immer die wie folgt aussieht:
Error uploading: Optional("user-data/eu-west-1:xxxx-xxxx-xxxx-xxxx-xxxxxxxxxx_primary_profile_picture.jpg")
Error: Error Domain=com.amazonaws.AWSS3ErrorDomain Code=0 "(null)"
UserInfo={HostId=XXX,
Message=The request body terminated unexpectedly,
Code=IncompleteBody,
RequestId=1485A0FFBD7819D7}
Ich bin nicht sicher, was los ist falsch, ich habe debugged, und fileName, fileURL, imageData scheinen in Ordnung zu sein
Es gibt einen Fehler in v2.5.1 des SDK versuchen, auf 2.5.0 herabstufen, wenn Sie können. – donkon
Ich musste wegen der schnellen 3 Unterstützung upgraden:/mit 2.5 hat nichts funktioniert (Cognito, Dynamo, ...) –
Swift 3 Unterstützung wurde in 2.5.0 eingeführt Die Änderung sollte keine der aufgeführten Dienste brechen ... theoretisch. Kannst du etwas darüber erzählen, wie Cognito und Dynamo nicht funktioniert haben? – donkon