2015-06-18 64 views
0

我有一個用paperclip和s3上傳文件附件的項目。我如何讓用戶下載這些文件。如何用Rails 4下載文件使用s3的回形針

型號

class Assets 
    has_attached_file :file 
end 

路線

resources :assets do 
    member do 
    get 'download' 
    end 
end 

控制器

def download 
    data = open(@asset.file.url) 
    send_data data.read, :type => data.content_type, :x_sendfile => true, :url_based_filename => true 
    end 

錯誤:

OpenURI :: HTTPError在AssetsController#下載

403禁止

+0

有網絡並讓蓋這無數的資源。建議你首先看看這些,如果你遇到困難(包括代碼,錯誤等),請嘗試自己和帖子。 –

+0

我對此嘗試了不同的解決方案,但對我而言並不清楚。 – Tyler

+0

@steveklein我提供了更多關於我在做什麼的信息 – Tyler

回答

0

我發現解決這個問題here

答:

def download 
    extension = File.extname(@asset.file_file_name) 
    send_data open("#{@asset.file.expiring_url(10000, :original)}").read, filename: "original_#{@asset.id}#{extension}", type: @asset.file_content_type 
end