amazon s3に直接アップロードできるようにする、FineUploaderの新機能を使用しようとしています。現在、私は写真をアップロードすることができません。エラーが表示されます: "無効なポリシー文書またはリクエストヘッダーです!"amazon s3用にfineuploaderを使用しているときに、無効なポリシー文書またはリクエストヘッダーエラーが発生しました
開発者は質問がここにstackoverflowで投稿されるように頼んだ。
私はこのページに自分の指示に従ってています: https://github.com/Widen/fine-uploader-server/blob/master/php/s3/s3demo.php
私はJavascriptを設定している:
物事を設定するには、私もそこにリンクされているサンプルファイルをエミュレートしていますしたがって、非常に少数のオプションがあります:
$('#fineuploader-s3').fineUploaderS3({
request: {
endpoint: "http://thenameofmybucket.s3.amazonaws.com",
accessKey: “mypublicaccesskey”
},
signature: {
endpoint: "s3demo.php"
},
iframeSupport: {
localBlankPagePath: "/success.html"
},
cors: {
expected: true
}
});
私はたくさんのpこれが私のために間違っていたかもしれないひも。私は前にs3やfineuploaderを使用したことはありません。しかし、ここに私がセットアップで最も混乱していると感じた場所があります。私は問題を感じている#1にある:
(1)の例では、これは、署名へのパスが設定されているかのjavascriptです:
// REQUIRED: Path to our local server where requests can be signed.
signature: {
endpoint: "/s3/signtureHandler"
},
ことが意図されている場合、私は確認されませんでしたいくつかのjsonが作成された空のファイルか、jsonを作成する関数がある場合はphpスクリプトを指すことになっています。私の場合は、直接コピーしたs3demo.phpです。
は(2)s3demo.phpファイルでは、私が変更のみ行はこれらでした:
$clientPrivateKey = $_SERVER['I put my private key here'];
$expectedBucket = "http://thenameofmybucket.s3.amazonaws.com";
function handlePreflightedRequest() {
// If you are relying on CORS, you will need to adjust the allowed domain here.
header('Access-Control-Allow-Origin: http://mywebsitename.org');
}
(3)これは私が私のCORSファイルの持っているものですが、私はそれがあったかどうかわかりませんでした教育ページ上の例では、タグが含まれていない権利ので:
<CORSRule>
<AllowedOrigin>http://mywebsitename.org</AllowedOrigin>
<AllowedMethod>POST</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
(4)命令に詳述されているように、私は、IAMパネルに行き、正確に指示からコピーしたポリシーを持つグループを作成しましたが、私のバケツの実際の名前:
その後、javascriptファイルとphpファイルで使用されていたパブリックおよびプライベートアクセスキーを取得したユーザーです。このスクリプトでは、ユーザー名は特に使用されていません。
ここで私が間違ってやったことが本当に明白であると思っています。御時間ありがとうございます。
質問(1)に答えるには'signature.endpoint'オプションはphpスクリプトを指していなければなりません。 –