[英]Upload objects to Google Cloud Storage
遵循@ brandon-yarbrough在此SO 问题中提供的答案之后,我选择使用Signed URL将对象上传到云存储。 我通过google-cloud-storage
库生成签名的URL,如下所示:
private static Storage storage = StorageOptions.getDefaultInstance().getService();
URL uploadUrl = storage.signUrl(
BlobInfo.newBuilder(IMAGE_BUCKET, fileName).build(),
30,
TimeUnit.MINUTES,
Storage.SignUrlOption.httpMethod(HttpMethod.PUT));
当我尝试将文件上传到生成的URL时,出现以下错误。
<?xml version='1.0' encoding='UTF-8'?>
<Error>
<Code>AccessDenied</Code>
<Message>Access denied.</Message>
<Details>Anonymous users does not have storage.objects.create access to bucket the-awesomest-bucket.</Details>
</Error>
我对签名URL的理解是,用户无需进行身份验证,因此允许匿名用户上传数据,而无需我对存储桶设置任何特殊权限。 我想念什么吗?
“内容类型”参数是可选的,但是,如果您未定义它,则默认为“二进制/八位字节流”。 当您尝试上传具有其他内容类型的图像时,会遇到签名不匹配的情况。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.