2014-01-09 164 views
4

我正在開發一個應用程序,我將在S3上存儲文件。由於文件名可能不同,所以我必須將文件重命名爲通用的文件夾,以便我知道哪一個文件可以在以後得到。直接從AWS S3下載用戶時更改文件名

如果我允許用​​戶通過我的網絡應用下載,我可以在將文件發送給用戶之前更改文件名。不過,我希望用戶使用下面的臨時安全令牌直接下載文件。

s3 = AWS::S3.new(
    :access_key_id => 1234, 
    :secret_access_key => abcd 
) 
object = s3.buckets['bucket'].objects['path/to/object'] 
object.url_for(:get, { :expires => 20.minutes.from_now, :secure => true }).to_s 

但是,如何更改用戶在將該文件下載回其原始文件名時看到的文件名?

回答

6

設置S3對象的內容處置屬性attachment; filename="nameyouwant"其中nameyouwant,當然,你要下載的文件默認情況下,有任何名稱。當用戶使用Web瀏覽器從S3下載時,瀏覽器將使用Content-disposition標題中的名稱而不是URL。

+1

謝謝。僅供參與此職的其他人蔘與。這是一個SO問題,向您展示如何去做。 http://stackoverflow.com/questions/11138336/how-do-i-add-or-modify-the-content-disposition-of-an-existing-object-in-amazon-s –

+0

你也可以只使用'filename =「nameyouwant」'部分,而不是附件。這對於顯示PDF文檔非常有用,然後在保存時會得到自定義文件名。 –