我想上传图片(约200 kB,每个)批量。我们有多个选项,如CarrierWave、剪纸夹等。我怎样才能批量地执行这些上传?
发布于 2013-08-25 15:05:42
TL;DR
不要。Rails不是为批量上传而优化的,所以只要有可能,就在带外执行它。
使用FTP/SFTP
处理大量文件的最佳方法是使用一个完全带外的过程,而不是捆绑您的Rails过程。例如,使用FTP、FTPS、SCP或SFTP批量上传文件。一旦文件在服务器上,就用cron作业对它们进行后处理,或者使用inotify启动rake任务。
注意:当你使用这种技术时,一定要注意文件锁定.
使用队列
如果你坚持要通过Rails做这件事,不要上传数百个文件。相反,上传一个包含要由后台作业或队列处理的文件的归档文件。这里有许多替代方案,包括塞迪基克和RabbitMQ等。
一旦上传了存档并提交了排队作业,队列进程就可以解压缩归档文件,并做任何其他需要做的事情。这种类型的解决方案规模很好。
发布于 2013-08-25 13:51:40
就像计算机Sc中的其他东西一样,答案是它取决于™。我真正的意思是
注意:如果您选择通过CORS将图像直接上传到S3,那么您的rails服务器就不需要管理文件上载。如果您有大量的图片或大量文件要上传,则建议直接上载。
然而,直接上传限制了您修改图像的能力(调整大小等)。因此,如果您选择直接上传解决方案,请记住这一点。
https://stackoverflow.com/questions/18429136
复制相似问题