Я пытаюсь загрузить изображение на предварительно подписанный URL AWS. Я попробовал с Alamofire 5 метод загрузки, который принимает multipartData. Я получаю ошибку 403 при многокомпонентной загрузке Alamofire 5.
Когда я пытаюсь с URLSession, он работает правильно.
/// Working code
var request: URLRequest = URLRequest(url: requestURL)
request.httpMethod = "PUT"
request.httpBody = image
request.setValue("image/jpeg", forHTTPHeaderField: "Content-Type")
let tasksession: URLSessionDataTask = session.dataTask(with: request, completionHandler: { (response, urlResp, error) in
if let data: Data = response {
do {
let json: [String: Any]? = try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any]
debugPrint("json \(json)")
}
catch {
debugPrint("error \(error)")
}
}
print(response ?? "response nil")
print(error ?? "response nil")
})
tasksession.resume()
То же самое, когда я пытаюсь с AF 5, он не работает
// Не рабочий код.
AF.upload(multipartFormData: { (multiPart) in
multiPart.append(imageData, withName: "file", fileName: "image.jpg", mimeType: "image/jpeg")
}, to: url, method: .put, headers: ["Content-Type": "image/jpeg"],
])
.uploadProgress(queue: .main, closure: { progress in
//Current upload progress of the file
print("Upload Progress: \(progress.fractionCompleted)")
})
.responseJSON(completionHandler: { data in
let json: [String: Any]? = data as? [String: Any]
debugPrint("upload complete json \(data)")
})
Может кто-нибудь сказать, почему он не работает с многочастной загрузкой с Alamofire 5, многочастная загрузка работает в Android.