からファイルをダウンロードすることができません。私は、Amazon S3から画像をダウンロードするには、次のコードを使用しています:アマゾンS3
router.post('/image-upload', function (req, res, next) {
if (!req.files)
return res.status(400).send('No files were uploaded.');
var file = req.files['image_' + req.session.sessID];
AWS.config.loadFromPath(<credentials_path>);
var s3 = new AWS.S3();
var params = {Bucket: credentials.aws_s3.bucket_name, Key: req.session.email, Body: file.data};
s3.putObject(params, function(err, data) {
if (err) {
console.log(err)
} else {
var options = {
Bucket: credentials.aws_s3.bucket_name,
Key: req.session.email
};
var url = s3.getSignedUrl('getObject', options);
console.log(url);
}
});
});
私は、フォームを、次のURLを取得しています:
https://[S3 BUCKET].s3.ap-south-1.amazonaws.com/[KEY]?X-Amz-Algorithm=[VALUE]&X-Amz-Credential=[VALUE]&X-Amz-Date=20170427T111724Z&X-Amz-Expires=60&X-Amz-Signature=[VALUE]&X-Amz-SignedHeaders=[VALUE]
しかし、私がしようとするとブラウザでこのリンクを開くと、次のエラーが表示されます。
<Error>
<Code>AuthorizationQueryParametersError</Code>
<Message>
Query-string authentication version 4 requires the X-Amz-Algorithm, X-Amz-Credential, X-Amz-Signature, X-Amz-Date, X-Amz-SignedHeaders, and X-Amz-Expires parameters.
</Message>
<RequestId>29819210D89C8877</RequestId>
<HostId>
aPpmRMYB7QCog4UDqs1j2rCdY3cy5H8u3kGE8nv2qXF6Y2iATPNquz+MQNdvr3zZ1ceRydRplq0=
</HostId>
</Error>
このエラーが返された理由はわかりませんrlにはすべての必須のクエリパラメータがあります。誰でも助けてもらえますか?
あなたは 's3'オブジェクトをどのように作成したか分かりますか?どの言語を使用していますか? –
@JohnRotenstein私は完全なコードを追加しました。私はNode Expressを使用しています。私がしたいのは、S3に保存されている画像のURLをjavascriptに送り、ウェブページ上に画像を表示することです。 –
URL *は必要なパラメータを持つように*表示されますが、 '&'は存在してはいけません。クエリ文字列パラメータは '&'で区切られており、このxmlエスケープ形式は無効です。それがどこから来ているのかは明らかではありません。 –