【问题标题】:Access JSON in bucket via API key通过 API 密钥访问存储桶中的 JSON
【发布时间】:2019-10-06 04:09:29
【问题描述】:

我在 Google Cloud 上创建了一个包含一个 JSON 文件的存储桶。我希望通过某种基本形式的身份验证访问此 JSON,例如 API 密钥

我在谷歌云上创建了一个没有任何限制的 API 密钥

当我尝试使用我的 API 密钥以文档格式发出 GET 请求时,例如:

https://storage.googleapis.com/BUCKETNAME/JSONNAME?API_KEY=APIKEYNAME

它返回以下内容

“匿名调用者没有 storage.objects.get 对存储桶的访问权限”

我不知道为什么,因为我正在发送 API 密钥

作为替代方案,如果我将存储桶/JSON 文件设为“公开”,我可以通过以下 URL 轻松访问 JSON:

https://storage.googleapis.com/BUCKETNAME/JSONNAME

虽然我真的不想让它完全打开..

有什么我可以在这里做的吗?我希望需要一个基本密钥(在标头或 URL 上)才能访问 JSON

谢谢!

【问题讨论】:

    标签: google-cloud-platform google-cloud-storage


    【解决方案1】:

    根据documentation on API keys

    获得 API 密钥后,您的应用程序可以将查询参数 key=yourAPIKey 附加到所有请求 URL。

    在您的问题中,您说您通过名为“API_KEY”的参数传递 API 密钥,但文档说使用“密钥”。

    【讨论】:

      【解决方案2】:

      不,您不能使用基本密钥访问private Google Cloud Storage 存储桶上的文件。
      访问私有存储桶中的文件有两种选择。

      1. 使用 Google Cloud Storage 的 REST-API。
        需要 AccessToken(OAuth2.0) 才能发出请求。
        确保配置 IAM 或 ACL 以访问存储桶。
      2. 使用签名 URL 访问文件。签名 URL 是允许下载/上传文件的短期 URL。

      1. Downloading object in Google Cloud Storage.
      2. Signing URL to access file on your program.

      【讨论】:

      • 如果我保持公开,并且没有API密钥,文件可以访问多少次有限制吗?
      • 不,没有。 Google Cloud Storage 没有限制访问次数的功能。如果您将存储桶保持为公开状态,则所有用户都可以无限制地访问它。
      • 访问此 JSON 的次数越多,我是否需要支付更多费用?
      • 是的。让我们检查链接cloud.google.com/storage/pricing#network-pricing
      猜你喜欢
      • 2018-05-11
      • 2022-01-12
      • 1970-01-01
      • 1970-01-01
      • 2021-09-14
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多