通过签名的URL上传到Google Cloud Storage-对象不公开

用户名

我遵循了教程,以允许使用签名的URL将文件从GWT前端直接上传到Google Cloud Storage。我通过指定可以正常工作的内容类型扩展了Java示例。然后,我看到以这种方式上传的文件不公开可读。为了使这个工作,我尝试了:

  • 我已经为新上传的对象设置了默认ACL gsutil defacl set public-read gs://<bucket>再次上传文件-没有运气,stil不可见。
  • 然后尝试直接在该对象上设置ACL,gsutil acl set public-read gs://<bucket>/<file>但它给了我AccessDeniedException:403 Forbidden这是有道理的,因为gsutil已通过我的Google帐户进行了身份验证,并且已使用服务帐户及其P12密钥创建了已签名的URL。
  • 我尝试在上传阶段设置ACL,因此添加了"x-goog-acl:public-read\n"规范化的扩展头和适当的查询字符串参数,以通过签名检查。该死的,祝你好运!

我的假设是,也许我正在使用的扩展头是错误的?然后,根据文档private,默认情况下,所有对GCS进行身份验证的请求都将应用ACL。

无论如何-当我以项目所有者的身份登录时,为什么不能使这些文件从Google Console公开可读?对于通过控制台上传的所有文件,我都可以这样做(我知道在这种情况下,所有者是项目所有者,而不是服务帐户)。

我做错了什么?如何让任何人公开阅读它们?

感谢您的建议!

肖比希特

我认为,如果您阅读了给定的文档明确提到,如果您需要用户不使用Google帐户就下载对象,则此方法会为用户提供在特定时间分配的URL,以供用户下载对象。我假设这是不可能的,因为这些对象已签名就可以公开使用。如果仍然需要该功能,建议您进行对象的可恢复上传或简单上传。

另外,请尝试将您的项目服务帐户作为所有者放在存储区名称右侧的开发人员控制台中的“编辑对象的默认权限”中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Python将文件上传到Google Cloud Storage签名的URL

使用签名的URL上传到Google Cloud

什么是Google Cloud Storage公开阅读uri?

将python对象上传到Google Cloud Storage,而不保存到文件中

将图像从Google Cloud Function上传到Cloud Storage

如何使用Blobstore API在AppEngine中为上传到Google Cloud Storage的对象制作上传处理程序

如何通过Cloud Functions将文件上传到Cloud Storage并使用Firestore控制对Cloud Storage的访问?

如何通过Python GAE将视频上传到Google Cloud Storage?

如何从Node中的图像URL将图像上传到Google Cloud Storage?

如何在GKE(Go)中为Google Cloud Storage对象生成签名的URL

如何在Google Cloud Storage中上传批处理对象?

上传到Google Cloud Storage时获得403 SignatureDoesNotMatch?

将 xml 文件上传到 Google Cloud Storage 时出错

仅 14 个字节上传到 Google Cloud Storage

使用Flask将文件上传到Google Cloud Storage

Alamofire无法将文件上传到Google Cloud Storage

将文件上传到Google Cloud Storage:500后端错误

自动将数据上传到 Google Cloud Storage 和 BigQuery

将 Excel 上传到 Google Cloud Storage 时出错

将.raw文件上传到Google Cloud Storage

使用 Codeigniter 将文件上传到 Google Cloud Storage

使用 For 循环将多个文件上传到 Google Cloud Storage

Google Cloud Storage Image公开链接到img src

使用Java通过Google App Engine将文件上传到Google Cloud Storage :(无此类文件或目录)

在Google Cloud Storage签名的URL中提供回调URL

如何通过Google App脚本从Google Cloud Storage获取上传的文件URL

通过签名网址将文件放入Google Cloud Storage(GCS)

将 Blob 从 Firebase Storage Emulator 上传到 Firebase Cloud Storage

GSUTIL已将Url PUT签名到Google Cloud Storage失败