我正在尝试通过Alamofire将媒体文件上传到GCS(Google云存储)。下面是代码。
let soundUrl = URL(fileURLWithPath: dirPaths.appending("/audio-file.wav"))
let headers: HTTPHeaders = [
"Content-Type": "audio/wav",
"Authorization": "Bearer <MYTOKEN>"
]
Alamofire.upload(
multipartFormData: { multipartFormData in
multipartFormData.append(soundUrl, withName: "name")
},
to: "https://www.googleapis.com/upload/storage/v1/b/<folder-name>/o?uploadType=media?&name=audio-file.wav",method: .post, headers: headers,
encodingCompletion: { encodingResult in
switch encodingResult {
case .success(let upload, _, _):
upload.responseString(completionHandler: { (response) in
print(response)
})
case .failure(let encodingError):
print(encodingError)
}
}
)
但这并没有取得成功。
我尝试过的同样的东西Postman.
,它工作正常。。我检查了来自https://requestb.in的发帖请求,两者看起来都很相似。
不知道问题出在哪里。
我需要获取iOS的授权令牌吗?因为我从终端获得了令牌。我把它放在标题中 我想可以吗?
由于OAuth会像每小时一样过期,因此我们需要从设备获取它。一旦有了令牌,就可以从以下代码上传文件。
let soundUrl = URL(fileURLWithPath: dirPaths.appending("/audio-file.wav"))
let headers: HTTPHeaders = [
"Content-Type": "audio/wave",
"Authorization": "Bearer \(self.authorizationKey)"
]
Alamofire.upload(soundUrl, to: "https://www.googleapis.com/upload/storage/v1/b/<FOLDER>/o?uploadType=media&name=audio-file.wav",method: HTTPMethod.post, headers: headers).responseJSON{ response in
print(response)
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句