Ruby on rails 生产中的图像上传和存储
我正在使用“回形针”gem上传正在开发的图像/文件。它通常将文件存储在tmp文件夹中。所有产品在开发中都很好,但在生产中没有 我这里有两个问题 1) 在heroku,我可以上传图片。但是,它们会在一段时间后被删除。 为什么会这样?当我们将文件上传到heroku时,文件显然存储在某个位置。为什么要删除它们 2) 在AWS ec2中,我无法上载图像/文件。我是否需要设置将文件存储到公用文件夹的权限?也安装了rmagick以使回形针工作。我不知道要发布什么细节 这里没有 编辑:Ruby on rails 生产中的图像上传和存储,ruby-on-rails,heroku,amazon-ec2,paperclip,Ruby On Rails,Heroku,Amazon Ec2,Paperclip,我正在使用“回形针”gem上传正在开发的图像/文件。它通常将文件存储在tmp文件夹中。所有产品在开发中都很好,但在生产中没有 我这里有两个问题 1) 在heroku,我可以上传图片。但是,它们会在一段时间后被删除。 为什么会这样?当我们将文件上传到heroku时,文件显然存储在某个位置。为什么要删除它们 2) 在AWS ec2中,我无法上载图像/文件。我是否需要设置将文件存储到公用文件夹的权限?也安装了rmagick以使回形针工作。我不知道要发布什么细节 这里没有 编辑: 第二个问题是重复:我在
第二个问题是重复:我在这里链接帖子 Heroku只保留上载的图像一段时间,然后自动删除,因为Heroku只有只读文件系统。 有关更多详细信息,请阅读以下内容>> 如果您想使用AmazonWeb服务,请查看此文档,这将对您非常有帮助 1)您的Heroku图像正在被新提交的文件删除(每次您提交Heroku时,它都会用新文件替换您的所有文件,包括您的
图像
目录)。将向您描述发生这种情况的原因
2) 据我所知,AWS/EC2
仅用于处理-您需要。曲别针与S3协同工作,这意味着无论您是在AWS
还是Heroku
回形针 由于您是初学者,以下是回形针的一些细节:
#app/models/image.rb
Class Image < ActiveRecord::Base
has_attached_file :image
validates_attachment_content_type :avatar, :content_type => /\Aimage\/.*\Z/
end
#config/application.rb
:storage => :s3,
:s3_credentials => {
:bucket => ENV['S3_BUCKET_NAME'],
:access_key_id => ENV['AWS_ACCESS_KEY_ID'],
:secret_access_key => ENV['AWS_SECRET_ACCESS_KEY']
}
}
#app/models/image.rb
类映像/\Aimage\/.\Z/
结束
#config/application.rb
:storage=>:s3,
:s3_凭证=>{
:bucket=>ENV['S3_bucket_NAME'],
:access_key_id=>ENV['AWS_access_key_id'],
:secret\u access\u key=>ENV['AWS\u secret\u access\u key']
}
}
你需要注意的是,回形针实际上并不“存储”图像——它只是将图像传输到不同的位置并创建db条目。这意味着回形针唯一需要担心的是它的存储位置,以及图像的大小(使用rMagick
)