2013-05-07 79 views
1

所以我想從我的運轉軌道3應用至極上的Linode主辦上傳圖片,文件上傳本地工作,但是當我嘗試這樣做遠程失敗。我讀過一些選項,但幾乎所有的人看起來是這樣的:從軌道上傳圖像的Linode

CarrierWave.configure do |config| 

    if Rails.env.development? || Rails.env.test? 
    config.storage = :file 
    else 
    config.storage = :fog 
    config.fog_credentials = { 
     :provider    => 'AWS', 
     :aws_access_key_id  => 'some_access_key_id', 
     :aws_secret_access_key => 'some_secret_key', 
     :region     => 'eu-west-1' 
    } 
    config.fog_directory = 'bucket_name' 
    end 
end 

但是當我將其更改爲的Linode選項時,它給我的

ArgumentError (linode is not a recognized storage provider): 
    app/controllers/users_controller.rb:50:in `create' 

然後我採取了SFTP選項:

CarrierWave.configure do |config| 
config.sftp_host = "my.host.com" 
config.sftp_user = "username" 
config.sftp_folder = "public_html/uploads" 
config.sftp_url = "http://my.host.com/uploads" 
config.permissions = 0666 
config.directory_permissions = 0777 
config.storage = :file 
config.sftp_options = { 
    :password => "mypass", 
    :port  => 22 
} 
end 

,但我仍然得到了同樣的錯誤:

ArgumentError (linode is not a recognized storage provider): 
app/controllers/users_controller.rb:50:in `create' 

我與aptana和Rails 3.2一起工作,使用git,然後在每次更改後使用capistrano進行部署。我在這裏遇到了類似的問題Uploading files to Linode using CarrierWave,但它沒有答案。我不知道是否可以用carrierwave完成,但會有任何建議,歡迎您提供任何幫助。

謝謝!

回答

2

由於您的Linode實例上有20GB的存儲空間,並且您的服務器已經在Linode上運行,所以您希望選擇載波選項:file - 因爲您只是想將圖像存儲在(Linode)服務器的文件系統上,而不是任何外部存儲提供商如S3。 (的Linode是無法識別的carrierwave存儲提供商,因此錯誤消息)

儘量只比你的開發環境相同的選項留:

CarrierWave.configure do |config| 
    config.storage = :file 
end 
+0

感謝弗蘭克,其實那是我做的第一件事,當我部署,問題是,它並沒有創建任何文件夾或保存任何文件的任何地方(本地或服務器):( – Jorge 2013-05-15 17:33:49

+0

了很大的變化後,沒有很好的效果我從頭開始使用它,然後在公用文件夾下工作,否則它將圖像上傳到所需的文件夾中,但在要顯示它的image_tag上,它會搜索公用文件夾,即使絕對文件夾提供的路徑。謝謝! – Jorge 2013-06-17 20:24:59

0

如果您的應用程序是一個小..然後我建議使用Openshift來部署應用程序......這結帳deploying rails app in openshift

openshift提供一個永久的數據目錄來存儲數據和它的自由,它真的很容易部署在那裏。

+0

感謝Pandurang,但應用程序已經部署和運行上生產環境中的服務器時,問題出現在創建用戶時想要上傳圖片的那一刻。 – Jorge 2013-05-08 19:56:06