微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

GDAL:从私人谷歌云存储桶中读取栅格

如何解决GDAL:从私人谷歌云存储桶中读取栅格

我想使用 gs:// 通过 GDAL URI 从私有谷歌云存储桶读取栅格数据集。根据 VSI documentation,一种验证方式是 GS_SECRET_ACCESS_KEYGS_ACCESS_KEY_ID

我拥有可以访问目标存储桶的服务帐户的这些凭据,但是将它们设置为环境变量时,我收到了 403 响应。

此外,尝试访问像

这样的公共数据集
gdalinfo /vsigs/gcp-public-data-sentinel-2/tiles/32/V/LQ/S2B_MSIL1C_20181108T111249_N0207_R137_T32VLQ_20181108T113514.SAFE/MTD_MSIL1C.xml

还会返回 403 错误,凭据设置如下。

在通过 gsutil config -a 的动作时,我需要指定 project-id,我没有这些凭据。

我尝试使用不同的凭据,其中我知道 project-id 并且一切似乎都突然起作用了。

我发现的唯一相关讨论 ([1],[2]) 没有提及任何关于 project-id内容

所以,我的问题是

  • 使用这样的凭据设置,是否指定相应的 project-id 是强制性要求?

  • 有没有办法在 env 而不是 .boto 中设置这些凭据?

解决方法

似乎与凭据混淆了。没有(有效)凭据,也无法读取公共数据集。

一种身份验证方法是对具有足够权限的服务帐户使用有效的 GS_ACCESS_KEY_ID + GS_SECRET_ACCESS_KEY 组合。

这些可以设置为环境变量或存储在 .boto 文件中。

如果存储在 .boto 文件中,这可以手动完成

[Credentials]
gs_access_key_id=<YOURKEY>
gs_secret_access_key=<YOURSECRET>

或者通过运行 gsutil config -a ich 在这种情况下,您将被要求输入 project-id。但至少为了这个目的,只要输入一个东西,这个 id 是否正确似乎没有什么区别。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。