问题描述
我正在尝试使用后端服务器生成的签名 URL 将文件上传到 Google Cloud Storage,但出现此错误
SignatureDoesNotMatch
我们计算的请求签名与您提供的签名不匹配。检查您的 Google 密钥和签名方法。PUT
multipart/form-data; boundary=50b17d2b-3095-4762-b93f-fa87bbe1c7bd
1926666331
/bucket_name/r1m767lcbtxnuu34hu9klrljf65q</StringToSign></Error>
我正在使用带有 multipart 的 okhttp put 请求来上传这样的文件
private fun directUpload(signedUrl: String,file: File) {
try {
val requestBody: RequestBody = RequestBody.create(
file.getMimeType().toMediaTypeOrNull(),file
)
val request: Request = Request.Builder().url(signedUrl).put(requestBody)
.build()
val client = OkHttpClient()
val response: Response = client.newCall(request).execute()
if (response.isSuccessful) {
response.toString()
Log.d("Response_Direct_Upload","FileUploaded")
} else {
Log.d("Response_Direct_Upload",response.body?.string().toString())
}
} catch (ex: Exception) {
Log.d("Response_Direct_Upload","FileUploadFailedException")
}
}
服务端生成的签名url是这样的
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)