如何在 google 云存储中获取 GS_SECRET_ACCESS_KEY 和 GS_ACCESS_KEY_ID

How to get GS_SECRET_ACCESS_KEY and GS_ACCESS_KEY_ID in google cloud storage

我尝试使用 Landsat 图像从 public google 云存储 (https://console.cloud.google.com/storage/browser/gcp-public-data-landsat) 中读取数据。

我在 GDAL 中使用 Python3。 但是我有一个错误

ERROR 15: GS_SECRET_ACCESS_KEY+GS_ACCESS_KEY_ID, GS_OAUTH2_REFRESH_TOKEN or GOOGLE_APPLICATION_CREDENTIALS or GS_OAUTH2_PRIVATE_KEY+GS_OAUTH2_CLIENT_EMAIL configuration options and /home/qwerty/.boto not defined

如何获得 GS_SECRET_ACCESS_KEY 和 GS_ACCESS_KEY_ID?

gs_access_key_idgs_secret_access_key 可以由

生成

1.navigating 到您的 Google 云存储控制台并单击 Settings

2.on Settings 页面,导航到 Interoperability 选项卡。

3.on 此页面您现在可以选择一个服务帐户并单击 Create a new key 以生成访问密钥和匹配的秘密。

输出:

New service account HMAC key
service-account@project.iam.gserviceaccount.com
Access key  
xxxxxxxxxxxxxxxxxxx
Secret  
xxxxxxxxxxxxxxxxxxx
Copy this key's secret if you'll need it in the future. Once you close this dialog, the secret can't be recovered.

在 GCS 中读取和可选写入 GeoTIF 的替代身份验证方法。

在 CGP 控制台中

  • 创建服务帐户并下载 JSON 密钥文件。保持安全。
  • 在存储桶浏览器的权限选项卡上,为以下对象提供新的服务帐户角色:
    • Storage Legacy Bucket Owner 和
    • 存储旧存储桶Reader
    • path_to_credentials 指向您的密钥文件
    GEOTIF_PATH = "/vsigs/<my-bucket>/<objectname>"

    with rasterio.Env(GOOGLE_APPLICATION_CREDENTIALS=path_to_credentials):
        with rasterio.open('{}'.format(GEOTIF_PATH)) as src:
            print(src.width, src.height)
            profile = src.profile
            print(profile)

但是,有时我无法打开我认为应该可以打开的文件。此外,如果路径不正确,例如包含“gs://”或缺少 /vsigs,我会收到此错误:

CPLE_NotSupportedError: CPLRSASHA256Sign() not implemented: GDAL must be built against libcrypto++ or libcrypto (openssl)

但这不对,或者根本行不通?不过,重启jupyter notebook似乎就解决了。

我是 运行 GDAL 2.3.3,发布于 2018/12/14,Python 3.7.11 Windows。