【发布时间】: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}
- 这给了我这个带有错误消息的输出
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