【问题标题】:Set restrictions for files in /public folder with rails and paperclip使用导轨和回形针为 /public 文件夹中的文件设置限制
【发布时间】:2016-05-20 22:20:38
【问题描述】:

我正在使用回形针来存储图像,但我遇到了问题。当文件上传时,回形针生成两个文件,一个带有水印的处理图像和原始文件,在这种情况下,图像文件在公共文件夹中,现在的问题是,如果用户输入它,我可以限制 url喜欢:

localhost:3000/files/photos/image_processeds/57308cd52cb1be0846e4be9f/original/image.png

如果用户进入链接,将被禁止。

这是我的回形针配置

has_mongoid_attached_file :image_original,
                        :url => "/files/:class/:attachment/:id/:style/:basename.:extension",
                        :path => ":rails_root/public/files/:class/:attachment/:id/:style/:basename.:extension"

has_mongoid_attached_file :image_processed,
                        processors: [:watermark],
                        styles: {
                            thumb: ['150x150', :jpg],
                            small: ['350x300', :jpg],
                            medium: ['550x500', :jpg],
                            original: {geometry: '60%',watermark_path: "#{Rails.root}/public/images/logo.gif", position: "Center"}
                        },
                        :url => "/files/:class/:attachment/:id/:style/:basename.:extension",
                        :path => ":rails_root/public/files/:class/:attachment/:id/:style/:basename.:extension"

有办法做到这一点,或者找到更好的方法吗?

【问题讨论】:

  • 您是否有理由将它们存储在/public 中?

标签: ruby-on-rails ruby ruby-on-rails-4


【解决方案1】:

我猜original/image.png 应该加水印。 我的意思是处理后不应该存在没有水印的版本。 你检查了吗?

【讨论】:

  • 这里的问题是原始图像没有水印,它需要留在存储中。
【解决方案2】:

已解决,可靠的解决方案是将原始图像的副本保存到数据库中,并仅在他们购买照片时授予访问权限,否则他们只能看到带有水印的副本:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-22
    • 2011-03-06
    • 1970-01-01
    • 2018-02-26
    • 2020-05-17
    • 1970-01-01
    相关资源
    最近更新 更多