首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Shrine提取背景图像的尺寸

使用Shrine提取背景图像的尺寸
EN

Stack Overflow用户
提问于 2018-12-25 02:31:33
回答 1查看 220关注 0票数 2

我已经设置了直接上传到神社的S3。这很好用。在其他插件中,我启用了以下插件:

代码语言:javascript
复制
Shrine.plugin :backgrounding
Shrine.plugin :store_dimensions 
Shrine.plugin :restore_cached_data

如果我错了,请纠正我,但图像尺寸提取似乎是同步完成的。如果我让用户通过Uppy批量上传图片,然后将它们全部持久化,这似乎需要很长时间。

我想要做的是异步执行图像尺寸提取-我不需要缓存文件可用的尺寸。如果可能,当文件被提升到存储时,我希望在后台执行此操作。有办法做到这一点吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-25 21:41:57

我的工作方式是使用:refresh_metadata插件,而不是我最初使用的:restore_cached_data。感谢Janko为pointing me指明了正确的方向。

阅读源代码提供了一些有用的见解。:store_dimensions插件本身并不提取维度-它将宽度和高度提取到元数据散列中,因此当adds的基类requests metadata时,它们也会被提取出来。

通过使用:restore_cached_data,这可以在每个任务上完成。:restore_cached_data uses :refresh_metadata在内部,因此我们可以使用该知识仅在文件升级到存储时调用它。

我在初始化器中设置了:backgrounding:store_dimensions,所以最终的上传器可以简化为:

代码语言:javascript
复制
class ImageUploader < Shrine
  plugin :refresh_metadata
  plugin :processing

  process(:store) do |io, context|
    io.refresh_metadata!(context)
    io
  end
end

以这种方式持久化我们从Uppy获得的数据是超级快的,并且我们让后台作业在文件被提升到存储时提取维度,所以它们可以在以后使用。

最后,如果你有关于神社的问题,我强烈推荐它的专用Google Group。感谢Janko不仅创建了一个令人惊叹的软件(说真的,请阅读源代码),而且还感谢他对社区的支持。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53916740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档