真正的回形针替换(特别是文件系统的结构)

Posted

技术标签:

【中文标题】真正的回形针替换(特别是文件系统的结构)【英文标题】:True Paperclip Replacement (Speficially Structure of the File System) 【发布时间】:2022-01-04 12:58:32 【问题描述】:

在 Rails 6 中,我需要更换 Paperclip,但我找不到任何可以轻松复制它的替代品。

具体使用回形针的文件结构:

:model/:attachmant_field/000/000/000/:identifier/:style/:original_file_name

在过去十年中,我们构建了几个依赖于该结构(或类似结构)的工具,此外,我们的用户希望在上传图像后,他们可以引用具有相同文件名和永久 url 的样式(不是像 ActiveStorage 和 Shrine 这样随机生成的名称)并将 url 中的“样式”组件更改为 html 中的不同组件。

我在 Shrine 和 ActiveStorage 上都花了几天时间,努力让文件结构和命名正常工作,但一直失败,因为尽管它们是“自然替代品”,但它们实际上并没有以相同的方式处理事情。

我们的终端系统在 Amazon S3 上,尽管与之集成不是问题,只是文件系统。

感谢您的帮助,如果您希望/需要以相同的方式完成某些事情,那么当似乎没有任何东西可以真正替代它时,不得不删除那些效果很好的东西真的很令人沮丧。我宁愿不必开始重写我们开发的所有工具并重新设置客户的期望以使用新结构。

非常感谢。

【问题讨论】:

回形针停止工作了吗? (我知道它已被弃用)。或者,这里有一个分支github.com/kreeti/kt-paperclip 我不知道这有多好 @Eyeslandic,很好,我会检查分叉。是的,Rails 6+ 中不再加载原始文件 【参考方案1】:

你试过Carrierwave吗?您可以specify any storage path 并使用模型名称 (model.class.to_s.underscore)、附件字段 (mounted_as)、模型 ID (model.id) 动态构建它。原始文件名也可用作original_filename

【讨论】:

以上是关于真正的回形针替换(特别是文件系统的结构)的主要内容,如果未能解决你的问题,请参考以下文章

真正认识Linux系统结构

如何将Linux系统的多个目录及文件备份并压缩到一个文件,以方面保持和传递?

如何在 Rails 中使用 Paperclip 将文件系统中的图像添加到模型中?

第4章 文件和目录_文件系统结构及软硬链接

无法使用回形针导轨上传到S3 5.配置选项无效:存储桶

Linux/Unix学习笔记—— Linux文件系统