首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Ruby on Rails Cloudinary上载多个图像

Ruby on Rails Cloudinary上载多个图像
EN

Stack Overflow用户
提问于 2019-02-20 00:30:09
回答 1查看 288关注 0票数 0

我目前正在将多张图片上传到Cloudinary作为表单的一部分。问题是Cloudinary uploader一次只允许上传1张图片,所以当我像下面这样上传图片时,post请求非常慢:

代码语言:javascript
运行
复制
params[:photos].each do |_, photo|
  uploaded_photo = Cloudinary::Uploader.upload(photo.tempfile)
  photo = Photo.new(property: @property, public_id: uploaded_photo[:public_id.to_s])
  photo.save
end

图像与一个属性相关联,因此拥有多个图像非常重要。我尝试与并行gem并行运行上传,但它只是导致我的服务器因为某些未知的原因而冻结。

我还尝试过在表单中选择图像时将图像上传到Cloudinary的想法,然后在某个不确定的时间间隔清除作业中未使用的图像。

你们如何推荐将多张图片上传到cloudinary作为模型的一部分?

EN

Stack Overflow用户

发布于 2019-02-22 08:41:51

将多个文件上传到Cloudinary的一种方法是创建单独的线程:

代码语言:javascript
运行
复制
photos = [] # Array of photos to upload
threads = []
number_of_threads = 3

chunk_size = photos.size/number_of_threads
chunks = photos.each_slice(chunk_size).to_a
chunks.each do |res|
    threads << Thread.new {     
        # Add code here to do the upload to Cloudinary
    }
end
threads.each { |thr| thr.join }

您可以先将所有图像上传到Cloudinary,然后更新模型,或者在每个线程结束时更新模型。我不明白为什么会有这样的问题。我不建议超过几个线程,因为这可能会消耗您的服务器上的大部分资源,如果您有许多用户同时上传内容。或者,Cloudinary站点也推荐使用他们的jQuery插件在Ruby SDK文档(https://cloudinary.com/documentation/rails_image_and_video_upload#additional_jquery_library_features)下进行多个文件上传。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54770889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档