当前位置: 首页 > 知识库问答 >
问题:

如何从浏览器访问Google云存储桶中的文件?

尉迟龙光
2023-03-14

我正在使用谷歌云存储来存储我的谷歌应用程序引擎应用程序的图像,我试图访问这样的图像:

<img src="https://storage.googleapis.com/BUCKET_NAME/IMAGE_NAME">

但是,这会显示“拒绝访问”或向我显示Google登录提示。然后我尝试使用签名URL来授予客户端访问权限。

我生成了要签名的URL,如下所示:

String HTTP_Verb = "GET";
String Expiration = "1361993085";
String Canonicalized_Resource = "/bucket_name/sub_directory";
String stringToSign = HTTP_Verb + "\n" + Expiration + "\n" + Canonicalized_Resource;

然后用p12文件生成Base64并用Java编译,但我得到了以下错误:

The request signature we calculated does not match the signature you provided. Check your Google secret key and signing method.

我做错了什么?有没有办法不经身份验证就从地面军事系统访问图像?

共有3个答案

王扬
2023-03-14

对于更一般的答案,访问gs://url的方法是使用以下格式:

https://console.cloud.google.com/storage/browser/[BUCKET_NAME]/

例如,如果您试图访问的桶是Landsat公共数据集,那么您将使用以下网址访问桶:https://console.cloud.google.com/storage/gcp-public-data-landsat/

以下是与访问桶相关的留档:

  1. https://cloud.google.com/storage/docs/access-public-data

希望这有帮助!

杨征
2023-03-14

gsutil已更新,您现在需要执行以下操作:

gsutil -m acl -r set public-read gs://bucket-name
gsutil -m defacl set public-read gs://bucket-name

P. S.对于不熟悉gsutil的人,下面是如何安装它。

姜晨
2023-03-14

两天后,它终于开始工作了。答案是:我的方法是错误的,不需要签名URL。我只需要将我的bucket添加为public read,这样我就可以从浏览器请求中读取它。就这些。打开gsutil,键入以下内容:

gsutil -m acl -r set public-read gs://BUCKET_NAME

并将其设置为将来所有上载的默认值

gsutil -m defacl set public-read gs://BUCKET_NAME

希望它能帮助别人!

感谢@kctang!

 类似资料:
  • 我正在使用Spring引导连接到谷歌云存储。 我能够连接到一个文件,并从谷歌云存储桶中读取内容。 但是我不能得到谷歌云存储桶中所有文件的列表。 请帮帮我。 这很有效 这不工作。 有什么原因吗?

  • 我正在尝试使用脚本从部署在谷歌云中的Hadoop集群访问谷歌存储桶。如果bucket访问是只读的,则会失败。 我在做什么: > 使用 在主机上: 看看GCS Java源代码,Google Cloud Storage Connector for Hadoop似乎需要空的“目录”对象,如果bucket是可写的,它可以自己创建这些对象;否则它就失败了。设置导致“检索对象时出错”错误。 是否可以以某种方式

  • 我希望有一个私有的Python包,可以从用户友好的(或者可以说开发人员友好的URL)访问,比如https://storage.googleapis.com/pypi-packages/my-package/my-package-1.0.0.tar.gz。 我希望这个包可以从其他谷歌云平台工具访问,如Dataflow,Cloud ML,Composer或GKE 你认为这是可行的吗?

  • 首先,我是一名新的php开发人员,我的基于产品的公司要求我自动安装和卸载他们的Android应用程序的报告,这些报告可以在Play Developers控制台上获得。 我已经创建了一个服务帐户,我正在遵循以下文档(此处)中给出的步骤,但不知何故,我被困在某个地方,似乎无法继续前进。我想定期获取应用程序安装和卸载的数据。 我安装了谷歌客户端PHP api库如下,我从Github这里得到- 现在,在云

  • 我有一个存储图像的存储桶,当我使用图像的公共URL检索图像时,它会在浏览器中下载图像,而不是在浏览器中显示图像,我如何查看图像而不是下载图像。我为上传的图片使用以下URL。 https://www.googleapis.com/download/storage/v1/b/image-downloader-bucket/o/a06266f6-6082-468e-92ca-f918a48533a8?g

  • 问题内容: 我无法在Google Container Engine中使用“应用程序默认凭据”。这些文档说,它们是为App Engine和Compute Engine设计的,但是有人告诉我,它们应该透明地传递给在Container Engine上运行的容器。 这是失败的代码: 失败的错误: 期望Application Default Credentials与Container Engine一起使用是