gpt4 book ai didi

ruby - 使用 Shrine 在背景中提取图像尺寸

转载 作者:数据小太阳 更新时间:2023-10-29 08:56:36 25 4
gpt4 key购买 nike

我已经设置了使用 Shrine 直接上传到 S3。这很好用。其中,我启用了以下插件:

Shrine.plugin :backgrounding
Shrine.plugin :store_dimensions
Shrine.plugin :restore_cached_data

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

我想做的是异步执行图像尺寸提取——我不需要缓存文件可用的尺寸。如果可能的话,我想在文件被提升到商店时在后台执行此操作。有办法吗?

最佳答案

我实现它的方法是使用 :refresh_metadata 插件,而不是我最初使用的 :restore_cached_data。感谢 Janko 的 pointing me朝着正确的方向前进。

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

通过使用 :restore_cached_data,这是在每次分配时完成的。 :恢复缓存数据 uses :refresh_metadata 在内部,因此我们可以使用该知识仅在文件被提升到存储时调用它。

我在初始化程序中设置了 :backgrounding:store_dimensions,因此最终的上传程序可以简化为:

class ImageUploader < Shrine
plugin :refresh_metadata
plugin :processing

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

通过这种方式,我们从 Uppy 获得的持久化数据非常快,并且我们让后台作业在文件提升到存储时提取维度,以便以后使用。

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

关于ruby - 使用 Shrine 在背景中提取图像尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53916740/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com