我写了一个项目,可以很好地上传和下载Google云端存储中的对象。我能够检索内容,流和元数据,但当我得到一个对象的'mediaLink'并将其粘贴到浏览器时,我收到了这个错误:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "required",
"message": "Login Required",
"locationType": "header",
"location": "Authorization"
}
],
"code": 401,
"message": "Login Required"
}
}
mediaLink URL的格式如下所示:
https://content.googleapis.com/storage/v1/b/bucketname/o/folder%2Finsidefolder%2Fexample.txt
我在我的网站上通过OAuth 2.0流程进行了身份验证,并且在GCS上上传的所有对象都使用了自定义的AccessControlList,我决定将其设置为“allAuthenticatedUsers”,以便只对通过我的身份验证的用户进行访问网站。
有人可以帮我解决这个问题吗?非常感谢你
答案 0 :(得分:4)
媒体链接本身并未获得授权。您需要使用媒体链接授权下载,方法与授权任何其他请求的方式相同:通过包含适当的“授权”标题。
如果不向“AllUsers”提供读取权限,则媒体链接将无法在网络浏览器中使用。
此外,“AllAuthenticatedUsers”并不表示通过您的网站进行身份验证的用户。这意味着“任何拥有任何Google帐户的人。”