【问题标题】:Paperclip: copy_to_local_file called upon every update (of unrelated attributes)回形针:每次更新(不相关属性)时都会调用 copy_to_local_file
【发布时间】:2014-02-25 10:20:50
【问题描述】:

我正在使用带有 Amazon S3 的回形针 4.1.0。 我想知道为什么请求如此缓慢,并发现每当我更新带有附件的模型的属性时都会调用“copy_to_local_file”,即使它只是一个与附件无关的属性(在我的情况下是一个 cache_count,这意味着每个当有人投票支持实例时,附件会在本地下载!)。

我知道它是在需要回滚的情况下使用的,但是当属性与附件没有直接关系时,它似乎有点矫枉过正。

我是否以错误的方式使用回形针,还是可以改进?

感谢您的帮助

【问题讨论】:

  • 我也遇到了同样的问题,你有解决办法吗?
  • 没来得及测试,刚刚做了,把答案贴在下面:)

标签: ruby-on-rails ruby-on-rails-4 amazon-s3 paperclip


【解决方案1】:

只有我的 2 美分: 只有在调用ActiveRecord::Base#save 后,附件才会在本地下载。

  1. 每天在 cron 中调用 'base#save' 是否有助于减轻负载?
  2. 否则,如果可能,请删除方法copy_to_local_file的调用
  3. 或者编辑回形针的copy_to_local_file(style, local_dest_path)方法的来源,排除附件的下载。

【讨论】:

  • 感谢您的回答。我会为这项工作奖励赏金,但我觉得这并不能以一种干净的方式解决问题,感觉就像是为了一些微不足道的事情付出了很多努力。
【解决方案2】:

这是回形针的问题,已在主分支上修复!

【讨论】:

  • 是的,它在 4.1.1 中已修复。谢谢!
猜你喜欢
  • 1970-01-01
  • 2012-11-03
  • 1970-01-01
  • 1970-01-01
  • 2017-09-14
  • 1970-01-01
  • 1970-01-01
  • 2021-01-10
  • 2023-03-06
相关资源
最近更新 更多