仍然没有' Access-Control-Allow-Origin'标题与可恢复上传

时间:2016-05-08 21:22:12

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

在这个问题中,我部分指的是this one

我正在使用gcloud-package for Node在我的服务器上生成带有经过身份验证的请求的上传URI。这是通过文件的createResumableUpload方法完成的。实际上传将在浏览器中完成,该浏览器的来源不同。

目前,我的PUT请求被取消,因为此标头丢失,而OPTIONS请求正常工作。

Some fields have been blanked

我找到了三种无效的解决方案。

  1. 在关于CORS on Google Cloud Storage的文档的故障排除列表的第8位,建议使用XML CORS API将原点设置为*(通配符)。虽然这已经过时了,但是由于API已经切换到JSON,它仍然不会在之后设置标题。我也不喜欢将它设置为通配符,非常不安全。
  2. 在生成上传URI到*和实际原点时设置CORS选项,这些都被忽略
  3. 将CORS设置为查询字符串参数,也会被忽略。
  4. 我在这里遗漏了什么,或者这两年后仍未解决?

2 个答案:

答案 0 :(得分:1)

遗憾的是,这仍然不受支持。可恢复上载在逻辑上被认为是单个操作,假设涉及一个远程实体。据我了解,只会尊重第一个Origin标头。

您可以通过多种方式解决此问题。最好的方法可能是让您的服务器签署一个URL并允许客户端自己开始上传。或者,在开始上传时,您可以尝试让服务器提供客户端将使用的Origin标头,使其在整个操作过程中保持一致。

答案 1 :(得分:0)

感谢Brandon Yarbrough's answer,我可以解决我的问题。

事实证明,这是一个非常简单的解决方案。使用请求拦截器设置origin - 标头,并将其作为选项提供给存储桶中文件的createResumableUpload方法。

您现在可以从浏览器完成上传。