Python 使用google云存储和gsutil无法生成有效的signedurl

Python 使用google云存储和gsutil无法生成有效的signedurl,python,authentication,google-cloud-storage,gsutil,Python,Authentication,Google Cloud Storage,Gsutil,我一直在尝试使用谷歌云存储的gsutil创建signedurl,我一直在使用windows机器上的python 到目前为止,我所做的是 从谷歌的开发者控制台创建了一个服务帐户 然后,我从python中执行了这个命令来配置服务帐户“gsutil config-e” 然后根据控制台的要求提供我的凭证信息 然后,我尝试使用以下命令为我的一个对象创建一个签名url python gsutil signurl-d 10m-p notasecret p12file.p12 gs://{my bucket}

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

  • 从谷歌的开发者控制台创建了一个服务帐户
  • 然后,我从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错误,直到至少授予读取权限

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


请帮我解决这个问题,我已经被困在这个问题上两天了…

我试图访问的文件名称中有空格,因为url编码有一些错误,我无法为它创建正确的url

因此,对于没有空格的文件,我觉得很好


Reference->

您是否有长期计划限制对没有签名URL的对象的访问?如果匿名用户具有对对象的读取权限,则根本不需要使用签名URL。此外,接下来的问题是,生成的URL是否正常工作?我在文件名中使用空格时遇到了这个问题。我正在使用python命令python gsutil signurl-d 10m-p notasecret key.p12“gs://bucket/file name with space check.txt”它给了我“signaturedesnotmatch”错误/buckethha/文件%20name%20with%20space%20check.txt。我想你已经发现了一个gsutil bug。我会把它归档在适当的地方。现在,您是否可以尝试在命令行中用%20替换空格,如下所示,并告诉我它是否有效
gsutil signurl key.p12 gs://bucket/File%20name%20with%20spaces.txt
@BrandonYarbrough-Nope不起作用,甚至没有显示任何错误消息,它只显示空的白色浏览器页面。。。无XML错误响应-