2017-05-30 69 views
0

流星,所以在javascript中,我嘗試顯示來自AMAZON S3的圖像。 在圖像的src屬性中,我將訪問網址放在AWS控制檯提供的圖像中,如果我的圖像是公開的,它就可以工作。 如果我在AMAZON S3中公開,它不起作用。 那麼請問S3給我正確的URL,我提供了這個網址,我的形象的src屬性:無法使用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屬性或將其粘貼到瀏覽器的地址欄中來查看圖像。

這是故意的,因爲許多人和公司用它來備份文件,共享文件內部等,所以他們需要的選項,以保持自己的私人文件。他們創建和訪問私人文件的方式是通過AWS API,而不是直接通過網絡。

因此,要回答你的問題,你需要讓你想顯示在S3網站公開的任何圖像。

+0

謝謝您的回覆。 好的,我會把所有的圖片公開發布到網站上。但這是否意味着任何人都可以下載它們? 我不喜歡它太多! –

+0

是的,任何人都可以下載它們。沒有辦法阻止。如果圖像顯示在網站上,則可以下載。如果它不可下載,則不可顯示。 – Soviut

+0

@yvanCoyaud不要忘記,以紀念這個答案正確。 – Soviut