【发布时间】:2021-02-24 21:40:59
【问题描述】:
即使我在这里发现了一个类似的问题:
Signing key was not provided and could not be derived on google precondition
这不会解决我的问题。
我在本地对 Google Storage 默认服务帐户进行身份验证,我可以轻松读取存储桶对象,如下所示:
private val storage: Storage = StorageOptions
.newBuilder()
.setProjectId(projectId)
.build()
.service
fun read() {
val blob = storage
.get(BlobId.of(bucket, object))
println(String(blob.getContent()))
}
但是,当我尝试使用以下命令生成签名的上传网址时:
fun uploadUrl(objectName: String): String = storage
.signUrl(
BlobInfo.newBuilder(BlobId.of(bucketName, objectName)).build(),
15,
TimeUnit.MINUTES,
Storage.SignUrlOption.httpMethod(HttpMethod.PUT),
Storage.SignUrlOption.withExtHeaders(mapOf("Content-Type" to "application/octet-stream")),
Storage.SignUrlOption.withV4Signature()
)
.toString()
我收到signing key not provided。
我发现我很难认出我到底错过了什么。我通过gcloud auth application-default login 和owner 用户进行了身份验证,通常允许我执行任何gcloud 任务。这里有什么不同?
【问题讨论】:
标签: google-cloud-platform google-cloud-storage gcloud gsutil