假设我有一个类似媒体池的项目。基本上我希望能够上传你上传的任何文件(图片,视频,PDF格式等)。
我正在考虑使用refile,因为它支持动态处理图像,这很好,因为会有一个图像api应该让用户以他需要的任何大小请求图像。
但是,我将如何处理pdf上传或视频上传(甚至视频处理)?
是否有更好的替代品可以改装?
非常感谢!
答案 0 :(得分:1)
首先,文件附件库通常可以上传任何类型的文件。最受欢迎的是 Paperclip 和 CarrierWave 。它们使您能够在上传时处理,适用于视频。但是,它们不允许您即时处理。
另一方面,Dragonfly 和 Refile 专为实时处理而设计。 Refile的优势在于它支持直接上传。 Refile的一个缺点是你必须通过其Rack应用程序提供所有文件,因此如果你在S3上上传了你不会处理的视频,你仍然需要在第一次非缓存渲染时支付性能损失。 Dragonfly的优势在于它具有更先进的动态处理支持,并且还允许您在上传时进行处理。
最后,我们来到神社。 Shrine专为上传处理而设计,它是background jobs原生支持的唯一库,对于视频转码等更长时间的处理尤其有用。如果要将处理委托给第三方服务,Shrine还具有Transloadit集成。但您也可以使用Shrine进行实时处理,使用Cloudinary之类的服务,甚至连接Dragonfly(参见this post)。 Shrine像Refile一样支持direct uploads。其他一些值得注意的功能包括:metadata support,logging,flexible file validation,resumable uploads,更好的安全性和其他功能。
由于Shrine可以说具有比任何其他文件附件库更多的功能和灵活性,我建议去寻找它。