0

Dragonfly 默认创建文件,权限设置为 0644

来自https://github.com/markevans/dragonfly/blob/master/lib/dragonfly/temp_object.rb#L116

def to_file(path, opts={})
  mode = opts[:mode] || 0644
  prepare_path(path) unless opts[:mkdirs] == false
  if @data
    File.open(path, 'wb', mode){|f| f.write(@data) }
  else
    FileUtils.cp(self.path, path)
    File.chmod(mode, path)
  end
  File.new(path, 'rb')
end

似乎可以提供其他权限。但是怎么做?

在调用它的地方没有传入选项哈希。

来自https://github.com/markevans/dragonfly/blob/master/lib/dragonfly/file_data_store.rb#L107

content.to_file(path).close
4

1 回答 1

1

虽然这不像我喜欢的那样干净,因为它与蜻蜓的实现细节相结合,我找到了一种通过游击补丁的方法......

config/initializers/dragonfly.rb我添加

class Dragonfly::Content
  def to_file(path)
    umask = File.umask(02)
    val = temp_object.to_file(path, mode: 0664)
    File.umask(umask)
    val
  end
end
于 2014-08-12T14:53:53.150 回答