所以我想从linode上托管的运行rails 3 app上传图片,文件上传在本地工作,但是当我尝试远程执行时它失败了。我已经阅读了一些选项,但几乎所有选项都是这样的:
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'
我正在使用adit和rails 3.2使用git,然后在我做出并提交的每次更改后使用capistrano进行部署。我在这里遇到了类似的问题Uploading files to Linode using CarrierWave,但它没有答案。我不知道是否可以用carrierwave完成,但是会有任何建议,欢迎提供任何帮助。
谢谢!
答案 0 :(得分:2)
由于您的Linode实例上有20GB的存储空间且您的服务器已在Linode上运行,因此您希望选择carrierwave选项:file
- 因为您只想将图像存储在您的(Linode)文件系统上服务器,而不是像S3这样的外部存储提供商。 (Linode不是公认的载波存储提供商,因此出现错误消息)
尝试使用与开发环境相同的选项保留它:
CarrierWave.configure do |config|
config.storage = :file
end
答案 1 :(得分:0)
如果您的应用很小..那么我建议使用Openshift部署您的应用...结帐此deploying rails app in openshift
openshift提供了一个永久数据目录来存储数据及其免费,而且它非常容易在那里部署。