通过API密钥访问存储桶中的JSON

时间:2019-05-19 16:39:50

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

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

我没有任何限制地在Google云上创建了API密钥

当我尝试使用我的API密钥以文件格式记录GET请求时,例如:

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

它返回以下内容

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

我不确定为什么,因为我正在发送API密钥

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

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

我真的不想完全打开它。.

在这里我能做些什么吗?我想需要一个基本密钥(在标头或URL上)来访问JSON

谢谢!

2 个答案:

答案 0 :(得分:0)

根据documentation on API keys

  

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

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

答案 1 :(得分:0)

否,您不能使用基本密钥来访问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.