POST メソッドを使用して、HTML フォーム経由で Google Cloud Storage にファイルをアップロードしようとしています。Google はドキュメントで、非標準 ACL を割り当てるにはポリシーと署名フィールドの両方が必要であると述べています。
これらの値を生成する方法に関する説明を読むと、非常に簡単に思えます。残念ながら、何度も試行しても、Google のフィルターを通過する値を生成することはできません。私の署名がポリシー ドキュメントと一致しないというエラーが継続的に表示されます。
誰かが私が間違っている場所を教えてもらえますか? これは私のプロセスです:
- ポリシー文書を作成する
これは簡単な部分です。私のポリシー文書は次のとおりです。
{"expiration": "2015-06-16T11:11:11Z",
"conditions": [
["starts-with", "$key", ""],
{"acl": "public-read" },
{"bucket": "publicjs"},
{"success_action_redirect": "http://localhost/gcs.php" }
] }
次に、この Web サイトにアクセスし、上記の値を base64 でエンコードしました。 これは、私がポリシー ドキュメントとして使用しているものです。
ではサインを。秘密鍵を暗号化キーとして使用してポリシー ドキュメントを暗号化する必要があるため、この Web サイトにアクセスして暗号化を行いました。base64 でエンコードされたポリシー ドキュメント (ステップ 2 から) をメイン テキスト領域に入力し、相互運用性の「秘密」キーをキー ボックスに入力しました。
Enter キーを押すと、base64 の横の値が署名値になります。
値をフォームに入れ、POST リクエストを送信し、エラーを受け取ります。
どこが間違っていますか?