0

さまざまなサイズの画像の署名付き URL を生成し、クライアントに渡すサーバーがあります。Web クライアントは、JavaScript の良さを利用して、サーバーから提供された署名付き URL に 3 つの異なるサイズの同じ画像をアップロードしようとします。

<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おり、同じ権限でアップロードできます。

これは、画像を GCS に送信しようとしている非常にスパイクの多い JS コードのスニペットです。

  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 に答える