【问题标题】:Using google cloud storage and gsutil not able to generate valid signedurl使用谷歌云存储和 gsutil 无法生成有效的签名 URL
【发布时间】:2014-10-23 03:24:38
【问题描述】:

我一直在尝试使用谷歌云存储的 gsutil 创建一个签名的url,我一直在我的 windows 机器上使用 python 到目前为止我所做的是

  • 从 Google 的开发者控制台创建了一个服务帐户
  • 然后我从我的 python 中执行了这个命令来配置服务帐户“gsutil config -e”
  • 然后按照控制台的要求提供我的凭据信息
  • 然后我尝试使用以下命令为我的一个对象创建一个签名的 url
  • python gsutil signurl -d 10m -p notasecret p12file.p12 gs://{my bucket}/{my object}
  • 这给了我这个带有错误消息的输出

https://storage.googleapis.com/support-videos/a.txt?GoogleAccessId=myaccessid@developer.gserviceaccount.com&Expires=1409209504&Signature=GI5Uo8XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX4hHzPqq1c%3D

myaccessid@developer.gserviceaccount.com 没有 gs://{my bucket}/{my object} 的权限,使用此链接可能会导致 403 错误,直到至少授予 READ 权限

我已向对象上的所有用户授予读取权限

请帮我解决这个问题,我已经坚持了 2 天......

【问题讨论】:

  • 您的长期计划是限制对没有签名 URL 的对象的访问吗?如果匿名用户对该对象具有读取权限,则根本没有理由需要使用签名 URL。
  • 另外,后续问题,生成的 URL 是否正常工作?
  • 我正面临这个文件名中有空格的问题 我正在使用这个 python 命令 python gsutil signurl -d 10m -p notasecret key.p12 "gs://bucket/带空格的文件名 check.txt " 它给了我 "SignatureDoesNotMatch" 错误 /buckethha/File%20name%20with%20space%20check.txt
  • 有趣。我想你已经发现了一个 gsutil 错误。我会在适当的地方归档。现在,您可以尝试在命令行中用 %20 替换空格,如下所示并让我知道它是否有效? gsutil signurl key.p12 gs://bucket/File%20name%20with%20spaces.txt
  • @BrandonYarbrough 不行,它甚至不显示任何错误消息,它只是显示空白的浏览器页面...没有 XML 错误响应 –

标签: python authentication google-cloud-storage gsutil


【解决方案1】:

由于 urlencoding 的一些错误,我尝试访问的文件的名称中有空格我无法为其创建正确的 url ...

所以对于没有空格的文件我可以正常工作

参考 -> Using google cloud storage and gsutil not able to generate valid signedurl

【讨论】:

    猜你喜欢
    • 2013-12-27
    • 2018-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 2014-09-13
    • 2016-04-30
    相关资源
    最近更新 更多