我不知道這是否會幫助,但它可能給你一些想法
回形針
的方式我們使用Rails團隊上傳的文件是用驚人Paperclip
寶石。我提到這一點,因爲回形針不僅與S3集成,而且還爲您提供正確管理文件的核心方法
回形針與ActiveRecord(您的數據庫)一起使用來存儲文件信息。然後,您可以在Paperclip的配置選項中定義存儲文件的位置(包括S3)。這意味着,如果您上傳允許用戶更改的.csv文件&,則使用類似回形針的內容可以幫助您保持正確的順序
雖然您可能會或可能不會從Paperclip中受益,但下面概述了它的工作原理:
上傳隨着回形針
有一個很好的Railscast about Paperclip here
這裏是如何得到它的工作:
#app/models/csv.rb
class CSV < ActiveRecord::Base
has_attached_file :attachment
end
#app/controllers/csv_controller.rb
def create
@csv = CSV.new(CSV_params)
@csv.save
end
#app/views/csv/new.html.erb
<%= form_for @csv do |f| %>
<%= f.file_field :attachment %>
<% end %>
使用回形針與S3
有一個偉大的tutorial on Heroku about Paperclip & S3
這裏是如何得到一些活碼與S3搭配的回形針:
#app/config/application.rb -> can use /environments/production.rb if you wish
config.paperclip_defaults = {
:storage => :s3,
:s3_host_name => 's3-eu-west-1.amazonaws.com'
}
#app/config/models/csv.rb
has_attached_file :image,
:styles => { :medium => "x300", :thumb => "x100" },
:default_url => "http://images.apple.com/iphone-5s/home/images/smart_hero.png",
:storage => :s3,
:bucket => 'firststop',
:s3_credentials => S3_CREDENTIALS
這是您如何使用Paperclip與Rails & S3一起使用的概述。如果聽起來你可以從中受益,請告訴我&我們可以在你的應用程序中實現它
你目前如何上傳文件?它是用「回形針」嗎? –
不,沒有回形針。不知道如何使用它。現在我通過表單上傳文件。 output_csv_file = params [:file] .read。然後我將文件寫入我的Rails應用程序,如上所示。 – bumpkin
好的,謝謝你的回覆!讓我爲你寫一個答案 –