gs:// <your-cloud-storage-bucket>没有CORS配置

时间:2017-06-19 20:16:51

标签: firebase cors firebase-storage

我正在尝试从按钮点击事件中的firebase存储中下载文件,但它给了我'Access-Control-Allow-Origin'错误。

https://firebase.google.com/docs/storage/web/download-files

如上所述,我正在尝试配置CORS。我安装了gsutil命令行工具。但我无法找到我需要复制此代码的cors.json文件

[
 {
 "origin": ["*"],
 "method": ["GET"],
 "maxAgeSeconds": 3600
 }
]

然后我使用了返回gsutil cors get gs://<your-cloud-storage-bucket>的命令gsutil cors get gs://<your-cloud-storage-bucket>/ has no CORS configuration

我是否需要先为我的存储桶创建CORS配置文件?

下面是我的按钮点击方法,包含错误在代码中。

downloadAttachment(fileName) {
var uid = AuthService.uid;
let storageRef = firebase.storage().ref().child('assignments/' + uid + '/' + fileName);
storageRef.getDownloadURL().then(url => {
  console.log(url);
  var xhr = new XMLHttpRequest();
  xhr.responseType = 'blob';
  xhr.onload = function (event) {
    var blob = xhr.response;
  };
  xhr.open('GET', url);
  xhr.send();
});
}

错误:

  

请求的资源上没有“Access-Control-Allow-Origin”标头。因此,不允许原点“http://localhost:4200”访问。

感谢。

2 个答案:

答案 0 :(得分:1)

是的,创建一个名为任意内容的文件 - 如果需要,可以调用它cors.json并将首选的CORS配置设置放入其中,然后像这样运行gsutil

gsutil cors set cors.json gs://<your-cloud-storage-bucket>/

这会将这些CORS配置设置上传到您的存储桶,然后您可以使用gsutil cors get gs://<your-cloud-storage-bucket>随时检索当前设置。

答案 1 :(得分:-1)

只需运行命令

gsutil cors set cors.json gs://<your-cloud-storage-bucket>

来自包含 cors.json 文件的目录。