Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 生产中的图像上传和存储_Ruby On Rails_Heroku_Amazon Ec2_Paperclip - Fatal编程技术网

Ruby on rails 生产中的图像上传和存储

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以使回形针工作。我不知道要发布什么细节 这里没有 编辑: 第二个问题是重复:我在

我正在使用“回形针”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