Alamofire使用mutli部分表单数据上传

时间:2017-03-08 21:39:47

标签: amazon-s3 swift3 alamofire

将代码库更新为Swift 3.正在测试上传图片和视频,发现了一个不寻常的使用错误。 Alamofire已更新,目前在pod版本“4.3.0”上。

有些图片上传到s3就好了,而其他图片只上传了大约104kb,通常是3到4mb左右的数据。视频上传工作没有任何问题。所有上传都使用相同的代码路径。

没有抛出任何错误。有问题的上传内容显示为黑匣子。

自更新以来有没有人见过类似的东西?在查看更新的Alamofire自述文件后,我是否遗漏了语法更改?任何关于可能原因的想法或反馈都非常感谢!

有问题的上传逻辑:

let uploadToken = UploadToken(dictionary: result)
  Alamofire.upload(multipartFormData: { (multipartFormData) in
    for (key, data) in uploadToken.s3Policy {
      if let encodedData = (data as! String).data(using: .utf8) {
        multipartFormData.append(encodedData, withName: key)
      }
    }

    multipartFormData.append(url, withName: "file")
  }, to: uploadToken.urlString, encodingCompletion: { (result) in
    switch (result) {
    case .failure(let error):
      completionHandler(nil, .uploadFailed(error as NSError))
    case .success(let request, _, _):
      request.uploadProgress(closure: { (progress) in
        let percentComplete = (progress.fractionCompleted * 0.9) + 0.1
        progressHandler(Float(percentComplete))
      })

      request.validate().response(completionHandler: { (_) in
        completionHandler(uploadToken.id, nil)
      })
    }
  })

0 个答案:

没有答案