假设我有一个类似媒体池的项目。基本上我希望能够上传您可以上传的任何文件(图像、视频、pdf 等)。
我正在考虑使用 refile,因为它支持动态处理图像,这很好,因为将有一个图像 api 应该让用户请求他需要的任何大小的图像。
但是,我将如何处理 pdf 上传或视频上传(甚至视频处理)?
是否有更好的选择来重新归档?
非常感谢!
假设我有一个类似媒体池的项目。基本上我希望能够上传您可以上传的任何文件(图像、视频、pdf 等)。
我正在考虑使用 refile,因为它支持动态处理图像,这很好,因为将有一个图像 api 应该让用户请求他需要的任何大小的图像。
但是,我将如何处理 pdf 上传或视频上传(甚至视频处理)?
是否有更好的选择来重新归档?
非常感谢!
首先,文件附件库一般可以上传任何类型的文件。最受欢迎的是Paperclip和CarrierWave。它们使您能够处理上传,这适用于视频。但是,它们不允许您即时处理。
另一方面,Dragonfly和Refile专为动态处理而设计。Refile 的一个优点是它支持直接上传。Refile 的一个缺点是您必须通过其 Rack 应用程序提供所有文件,因此如果您在 S3 上上传了您不会处理的视频,您仍然需要为第一次非缓存渲染支付性能损失。Dragonfly 的一个优点是它具有更高级的动态处理支持,并且它还允许您在上传时进行处理。
最后,我们来到神社。Shrine 是为上传处理而设计的,它是唯一一个原生支持后台作业的库,这对于像视频转码这样的长时间处理特别有用。如果您想将处理委托给第 3 方服务,Shrine 也有一个Transloadit集成。但是您也可以使用 Shrine 进行即时处理,使用Cloudinary 之类的服务,甚至连接 Dragonfly(参见这篇文章)。Shrine 支持直接上传,例如 Refile。其他一些值得注意的功能包括:元数据支持、日志记录、灵活的文件验证、可恢复上传,更好的安全性等。
由于 Shrine 可以说比任何其他文件附件库具有最多的功能和灵活性,我会推荐它。