由於某些原因,我的S3存儲桶中的文件被強制作爲下載而不是顯示在線,因此如果我複製圖像鏈接並將其粘貼到地址欄並導航到它,它會促進我的瀏覽器下載它。相反,我實際上必須點擊打開的圖像才能訪問網址。AWS S3顯示文件內聯,而不是強制下載
任何方式來改變從S3服務文件的方式
由於某些原因,我的S3存儲桶中的文件被強制作爲下載而不是顯示在線,因此如果我複製圖像鏈接並將其粘貼到地址欄並導航到它,它會促進我的瀏覽器下載它。相反,我實際上必須點擊打開的圖像才能訪問網址。AWS S3顯示文件內聯,而不是強制下載
任何方式來改變從S3服務文件的方式
您需要更改內容類型。在S3控制檯中,右鍵單擊對象並選擇屬性,然後在元數據下。您也可以通過編程方式執行此操作:http://docs.amazonwebservices.com/AWSSDKforPHP/latest/index.html#m=AmazonS3/change_content_type
我看到,我使用$ s3-> putObjectFile($ tmp,$ bucket,$ actual_image_name ,S3 :: ACL_PUBLIC_READ)之前,但由於某種原因,我記得我使用桶策略 –
@Cl'也可以[在putObject()方法]中設置內容類型(http: //undesigned.org.za/2007/10/22/amazon-s3-php-class/documentation#putObject)(因爲'putObjectFile()'現在是遺留的)。 – mathielo
$client->putObject(array(
'Bucket' => 'buckname',
'Key' => $destination,
'SourceFile' => $source,
'ContentType' =>'image/jpeg', //<-- this is what you need!
'ACL' => 'public-read'//<-- this makes it public so people can see it
));
當您複製圖像鏈接時,它會直接指向圖像URL。瀏覽器只是理解執行提供的URL。 –
@SunilGulabani但我看到使用亞馬遜S3的網站,可以直接訪問該文件,而無需強制下載文件。例如,圖像託管站點允許直接訪問圖像。我指的是直接文件路徑這裏是一個例子,這是一個在我的S3存儲桶中託管的文件:https://droplet-files.s3.amazonaws.com/7c32280bbcb1d3e67ac799ce9c71212f.JPG –
我認爲你提供的內容類型將是錯誤的上傳圖片。它需要是圖像/ jpeg。檢查內容類型:http://en.wikipedia.org/wiki/Internet_media_type –