0

我们有一个服务器,可以为各种尺寸的图像生成签名 URL,并将它们交给客户端。Web 客户端的 javascript goodness 尝试将三种不同大小的相同图像上传到服务器提供的签名 URL。

<Error>
  <Code>AccessDenied</Code>
  <Message>Access denied.</Message>
  <Details>Anonymous users does not have storage.objects.create access to bucket your-bucket-name.</Details>
</Error>

我们已经确认服务器代码可以成功上传图片,我们可以通过gsutil相同的权限上传。

这是我们非常尖刻的 JS 代码片段,它试图将图像发送到 GCS。

  var blobData = dataURItoBlob(canvas.toDataURL('image/png'));

  jQuery.ajax({
    type: 'PUT',
    url: signedURL,
    contentType: 'image/png',
    processData: false,
    data: blobData
  })

希望有人能指出我们正确的方向!

4

1 回答 1

0

响应是 401 还是 403?如果是 401,则查询参数可能由于某种原因不存在。这通常是因为您的程序可能会意外地双重转义 URL 或以其他方式剥离查询参数。检查 的值signedURL

于 2017-06-28T03:43:51.913 回答