public GC 存储访问失败,匿名调用者没有 storage.objects.get 访问权限

public GC storage access fails with Anonymous caller does not have storage.objects.get access

我正在尝试访问 Sentinel2 public 数据,如下所述: https://cloud.google.com/storage/docs/public-datasets

该文件说: “相比之下,使用云存储 API link 访问 public 数据不需要身份验证。”

但是我收到以下错误: “com.google.cloud.storage.StorageException:匿名调用者没有 storage.objects.get 访问 Google 云存储对象的权限。” 我正在使用 Java API:

存储=StorageOptions.getDefaultInstance().getService()

blob = storage.get(BlobId.of("bucketName", "objectName"))

有谁知道如何使用 Java API 下载这些文件? 谢谢!

该对象需要公开可读才能匿名访问,该错误表明您尝试读取的对象不可公开读取。

Sentinel-2 存储桶 gcp-public-data-sentinel-2 不允许未经身份验证的匿名列表(尽管您应该能够 browse it 在以任何帐户登录时)。相反,存储桶中的对象 index.csv.gz 包含您可以访问的内容列表。单个对象可以匿名下载并且文件路径相当长,例如:

https://storage.googleapis.com/gcp-public-data-sentinel-2/tiles/04/E/CR/S2B_MSIL1C_20190301T202209_N0207_R042_T04ECR_20190301T212521.SAFE/GRANULE/L1C_T04ECR_A010364_20190301T202210/IMG_DATA/T04ECR_20190301T202209_B01.jp2