Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用Alamofire将文件上载到S3时返回错误_Ios_Swift_Amazon S3_Alamofire - Fatal编程技术网

Ios 使用Alamofire将文件上载到S3时返回错误

Ios 使用Alamofire将文件上载到S3时返回错误,ios,swift,amazon-s3,alamofire,Ios,Swift,Amazon S3,Alamofire,我正在尝试使用预签名请求将文件上载到S3 Alamofire.upload(multipartFormData: { multipartFormData in //Attempt 1 multipartFormData.append(InputStream(data: data), withLength: UInt64(data.count), headers: [ "Content-Type": " " ]) //At

我正在尝试使用预签名请求将文件上载到S3

Alamofire.upload(multipartFormData: { multipartFormData in

    //Attempt 1
    multipartFormData.append(InputStream(data: data), withLength: UInt64(data.count), headers: [
            "Content-Type": " "
            ])

    //Attempt 2
    //multipartFormData.append(data, withName: "file", fileName: fileName, mimeType: "application/json")

}, with: router) { encodingResult in

        switch encodingResult {
        case .success(let upload,_,_):
            upload.validate()
            upload.uploadProgress(closure: { progress in

                guard let progressCallback = progressCallback else { return }
                progressCallback(progress.fractionCompleted)
            })

            upload.responseString(completionHandler: { response in

                switch response.result {
                case .success(let json):
                    self.handleSuccessResponse(withJson: json, toCallback: callback)
                case .failure(let error):
                    self.handleFailResponse(withData: response.data, toCallback: callback)
                }
            })

        case .failure:
            break
        }
    }
我得到了状态码
403

答复:

<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error>

<Code>SignatureDoesNotMatch</Code>
<Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message>
<AWSAccessKeyId>************</AWSAccessKeyId>
<StringToSign>POST\n\nmultipart/form-data; 
boundary=alamofire.boundary.e001fb3981bbd6fc\n1522072451\nx-amz- 
server-side-encryption:AES256\n/api/****/test.json</StringToSign>
如果我理解正确,问题是
boundary=alamofire.boundary.e001fb3981bbd6fc

我如何删除这个


谢谢

为什么不使用AWS iOS sdk?@strongjz我不想添加另一个sdk,只用于上传文件。这应该是一个简单的任务,使用Alamofire@strongjz还有其他建议吗?如果我找不到答案,我将使用SDKWho为您生成预签名的url?同样是的,我认为头球给你带来了麻烦。服务器是否正在生成预签名的url