2017-06-27 20 views
0

を経由して署名したURLにアップロードしようとすると、私たちは様々なサイズで画像のための署名のURLを生成し、クライアントにそれらをハンドオフするサーバーを持っています。 Webクライアントはjavascriptの良さは、サーバが提供する署名したURLに同じ画像の3種類のサイズをアップロードしようとしません。権限問題のjavascript

<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 
    }) 

うまくいけば、誰かが正しい方向に向けることを望みます。

+1

ので、問題 –

答えて

0

は401または403応答ですか?それが401の場合、何らかの理由でクエリパラメータが存在しない可能性があります。これは、プログラムが誤ってURLをダブルエスケープしたり、クエリパラメータを取り除いたりすることがあるためです。 signedURLの値を確認します。

+0

うわにいくつかの光を当てることが、ブラウザの開発者向けツールコンソールのいずれかの有用な情報!それは絶対にそれでした。私は私はそれがエスケープ倍増されなかったが、それは二重のアンパサンドをエスケープして考えさせられたURLの最初の部分で何かを見ました。ありがとうございました。 –