2011-01-24 61 views
1

我有一個控制器操作,旨在將文件發送給用戶以便從S3中的存儲桶下載。從Paperclip下載文件

這裏的控制器代碼:

send_file @project.file.url, :type => @project.file_content_type 

這裏的錯誤:

Cannot read file http://s3.amazonaws.com/bucket/projects/1/project.xlsx?2011 

當我直接去了網址,我得到一個下載的文件!這是怎麼回事?

回答

1

如果您只是將用戶重定向到S3上的文件,可以嗎?

redirect_to @project.file.url 

的問題是,send_file預計到本地文件,然後將其用於通過服務器從本地文件可以在磁盤上存取服務了數據的路徑。 S3上的文件只能通過HTTP訪問,因此您的網絡服務器無法使用它。要使用send_file,您必須先下載它,然後提供它我認爲。

+0

@homairs - 你是什麼意思,它期望一個'文件'?它不會識別一個簡單的.pdf或.xslx文件嗎? – sscirrus 2011-01-24 21:55:03