我编写了一个项目,可以很好地向/从 Google Cloud Storage 上传和下载对象。我能够检索内容、流、元数据,但是当我获取对象的“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”,以便仅向通过我的身份验证的用户授予访问权限网站。
谁能帮我解决这个问题吗?非常感谢
最佳答案
媒体链接未经固有授权。您需要使用媒体链接授权下载,就像授权任何其他请求一样:通过包含适当的“授权” header 。
如果不向“AllUsers”提供读取权限,媒体链接将无法在网络浏览器中使用。
此外,“AllAuthenticatedUsers”并不意味着通过您的网站进行身份验证的用户。它的意思是“拥有任何 Google 帐户的任何人。”
关于json - 无法通过其 mediaLink 从 Google Cloud Storage 检索对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24024099/