簡體   English   中英

下載后更改存儲在Amazon S3上的文件的文件名

[英]Changing the filename of a file stored on Amazon S3 upon download

因此,我有一個上傳服務,許多人將相同的文件上傳到我的Amazon S3存儲桶。 我更改了應用程序的設計,以便在上傳時計算文件的SHA1,並對照上傳的文件列表進行檢查。

如果存在,我也只需將文件分配給新的上傳器。

問題是文件被命名為第一個上載程序。 隨后的所有上傳者將獲得相同的名字。

我可以在HTML5中使用download =“”屬性,但在IE中不起作用: http : //caniuse.com/#search=download

這些文件是遠程存儲的,因此除非我先將其下載到不合邏輯的本地服務器上,否則就無法更改標頭。

請指教。

我認為這可能的唯一方法是在將用戶重定向到下載之前添加元數據。

您可以在S3中將元數據添加到文件中。 鍵為“ Content-Disposition”,值為“ attachment”; filename =“〜實際文件名〜”'。 您可以強制名稱並觸發下載。

這樣,您不必將任何文件下載到本地文件系統。

需要注意的是,如果其他人也在毫秒內請求同一文件,則第一個用戶可能會獲得第二個用戶所請求的名稱。

使用rename()方法

例:

$file = "boo.png";
$newName = "scary";
$ext = substr( $file, strpos( "." ), strlen( $file ) );
$path = "/images/downloaded/";

rename($path . $file, $path . $newName . $ext);

PHP文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM