我正在尝试使用后端服务器生成的签名 url 将文件上传到谷歌云存储,它给出了这个错误
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 如下所示