Следующий код отлично работает на iOS9, но при запуске на iOS8 происходит сбой, и Amazon возвращает ошибку 400. Ответ содержит только заголовки:
- Соединение = закрыть; "Тип контента" = "приложение/xml"; Дата = "Среда, 13 апреля 2016 г., 12:19:21 по Гринвичу"; Сервер = AmazonS3; ...
NSData — это изображение, а Content-Type — «image/png», что говорит Amazon не хранить его как «двоичный/октетный поток».
func uploadFile(locationURL: String, http: Alamofire.Method, mimeType: String, fileData: NSData) -> ApiCaller {
Alamofire.upload(http, locationURL, headers: ["Content-Type": mimeType], data: fileData)
.progress { bytesWritten, totalBytesWritten, totalBytesExpectedToWrite in
if let uploadProgress = self.uploadProgress {
uploadProgress(bytesWritten, totalBytesWritten, totalBytesWritten);
}
}
.response { (req, res, json, error) in
self.returnResult(req, res: res, json: json, error: error, tag: 0)
return();
}
return self;
}