2017-05-30 6 views
0

流星では、JavaScriptで、私はAMAZON S3から画像を表示しようとします。 イメージのsrcプロパティでは、AWSコンソールで提供されているイメージにアクセスURLを設定し、イメージが公開されている場合は動作します。 AMAZON S3に公開しないと動作しません。 だから私は私に正しいURLを送信するためにS3を尋ねると、私は私のイメージのsrcプロパティには、このURLを提供:Amazon S3を使用してイメージを表示できないのはなぜですか?

var s3 = new AWS.S3(); 
var params = {Bucket: 'mybucket', Key: 'photoPage06_4.jpg', Expires: 6000}; 
var url = s3.getSignedUrl('getObject', params); 
console.log("URL", url); 
document.getElementById('photoTest').src =url; 

そしてそこに私がエラーを持っている:

Failed to load resource: the server responded with a status of 400 (Bad Request)

誰かがアイデアを持っています?

答えて

0

これは正しい動作です。 S3で画像が非公開に設定されている場合、その画像を一般公開することはできません。つまり、イメージタグのsrcプロパティとして設定するか、ブラウザのアドレスバーに貼り付けることでイメージを表示することはできません。

多くの人や企業がファイルをバックアップしたり、ファイルを内部的に共有するなど、意図的です。そのため、ファイルを非公開にするオプションが必要です。彼らがプライベートファイルを作成してアクセスする方法は、Web上で直接行うのではなく、AWS APIを使用する方法です。

質問に答えるには、S3であなたのサイトに表示したい画像を公開する必要があります。

+0

ありがとうございます。 OK、私はすべての画像を公開してサイトに投稿します。しかし、これは誰でもそれらをダウンロードできることを意味しますか? あまりにも好きではありません! –

+0

はい、誰でもダウンロードできます。それを防ぐ方法はありません。画像がウェブサイトに表示される場合は、その画像をダウンロードすることができます。ダウンロードできない場合は、表示できません。 – Soviut

+0

@yvanCoyaudこの答えを正しくマークすることを忘れないでください。 – Soviut

関連する問題