繁体   English   中英

无法签署Google Cloud Storage的URL

[英]Unable to sign URLs for Google Cloud Storage

我尝试了多种方法来签署Cloud Storage URL。 持续获取:

对预检请求的响应未通过访问控制检查:请求的资源上不存在“ Access-Control-Allow-Origin”标头。 因此,不允许访问来源“ #####”。

我测试了多个库后,kod应该可以工作:

from google.cloud import storage

storage_client = storage.Client()
bucket = storage_client.get_bucket(app_identity.get_default_gcs_bucket_name())
latest_blob = None
for blob in bucket.list_blobs():
  bn = blob.name
  if not latest_blob or bn > latest_blob.name:
    latest_blob = blob
signed_url = latest_blob.generate_signed_url(
  int(time.time()) + 3600,
  method='GET',
  content_type="text/csv")
self.redirect(signed_url)

我认为可能需要一些云控制台设置向导。

我已通过IAM并在存储桶中为服务帐户授予了对存储的完全访问权限。 我以为重定向可能是问题,但复制粘贴也不起作用。 SignatureDoesNotMatch。

听起来您有两个问题:

  1. 听起来您尝试在Web浏览器中使用JavaScript中的URL。 如果是这样,您将需要在对象上设置CORS策略,因为默认设置是拒绝跨域请求。 查阅https://cloud.google.com/storage/docs/cross-origin了解详细信息。

  2. 除此之外,听起来当您直接输入URL时您的请求也失败了,并且您收到了SignatureDoesNotMatch异常。 我猜问题是您正在为GET请求指定content_type。 客户端在发出请求时未指定“ Content-Type”标头。 尝试将其删除。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM