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
答案 0 :(得分:1)
虽然这不像我喜欢的那样干净,但由于它与Dragonfly的实现细节相结合,我通过游击修补方式找到了一种方法......
在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