ruby-on-rails – Rails 4,Paperclip,Amazon S3 – 上传到特定文件夹

ruby-on-rails – Rails 4,Paperclip,Amazon S3 – 上传到特定文件夹,第1张

概述这是我第一次使用Paperclip和Amazon S3,我很确定我错过了一些明显的东西.如果有人可以指出它会很棒. 在S3存储桶中,我有2个文件夹,开发和生产,根据环境将图像上传到相应的文件夹.我在我的model.rb中尝试了如下所示的here解决方案 – options = {}if Rails.env.production? options[:path] ||= 'productio 这是我第一次使用Paperclip和Amazon S3,我很确定我错过了一些明显的东西.如果有人可以指出它会很棒.

在S3存储桶中,我有2个文件夹,开发和生产,根据环境将图像上传到相应的文件夹.我在我的model.rb中尝试了如下所示的here解决方案 –

options = {}if Rails.env.production?   options[:path] ||= 'production'else   options[:path] ||= 'development'endhas_attached_file :picture,options

我不断收到一个名为development / production的文件上传到S3存储桶(如屏幕截图所示).

我甚至试过传递:path作为回形针的配置设置.同样的事情发生了 – 一个名为development / production的文件夹正在上传

我在这里错过了什么吗?我想做的就是,将我在开发环境中获得的图片上传到开发文件夹中,反之亦然.

解决方法 path选项也需要指定文件模式.试试这个

模型

has_attached_file :picture,:storage => :s3,:bucket => 'your_bucket',:path => ":env_folder/:attachment/:ID/:style/:filename.:extension"# some other model code here ...private# interpolate in paperclipPaperclip.interpolates :env_folder  do |attachment,style|  Rails.env.production? ? 'production' : 'development'end

编辑

如果您只将:path选项保留为’development’或’production’,那么您告诉Paperclip文件的路径是yourbucket / development,这就是为什么您根据屏幕截图看到单个文件的原因.这就是为什么在:path选项中使用能够唯一标识资源的东西很重要(我使用过:我的示例中的ID将使用模型的ID属性).

如果你有选择权,我认为更好的方法是将环境分成他们自己的桶.换句话说,开发环境将拥有自己的存储桶,生产将拥有自己独立的存储桶.代码中不仅清洁,您还可以为每个桶/环境设置不同的策略,根据我的经验,一旦您的应用程序在生产中发布,就需要这些策略.希望这可以帮助.

总结

以上是内存溢出为你收集整理的ruby-on-rails – Rails 4,Paperclip,Amazon S3 – 上传到特定文件夹全部内容,希望文章能够帮你解决ruby-on-rails – Rails 4,Paperclip,Amazon S3 – 上传到特定文件夹所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1286759.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-09
下一篇2022-06-09

发表评论

登录后才能评论

评论列表(0条)

    保存