gpt4 book ai didi

ruby-on-rails - 将延迟回形针与 S3 直接上传结合使用

转载 作者:行者123 更新时间:2023-12-04 06:30:42 26 4
gpt4 key购买 nike

我在直接上传到 S3 的同时使用 Delayed Paperclip。我的模型名为 Photo,其附件为 image

使用 JavaScript 从照片表单将图像上传到 S3。该文件存储在 Paperclip 期望原始图像所在的位置,文件详细信息保存到隐藏字段。提交表单时,这些属性将写入照片模型:


图像文件名
图像文件大小
图片内容类型

因为单独写这些属性似乎不足以触发延迟回形针处理图像,在Photo.save之后我调用了Photo.image.reprocess!这确实让 DelayedPaperclip 创建了一个成功处理图像的新 Sidekiq 作业。

问题是,当我在 PhotosController 中调用 Photo.save 时,文件会从 S3 复制到 temp 目录,然后回到S3。这发生在工作之外并且正在阻塞:

[paperclip] copying image_assets/grab-original.tiff to local file /var/folders/bv/x495g9g10m7119680c9ssqmr0000gn/T/94943834d26bcb8b471f4eeb2a7f899d20141125-3895-1oqom7l
[AWS S3 200 2.601589 0 retries] get_object(:bucket_name=>"example-com-development",:key=>"image_assets/grab-original.tiff")

[paperclip] saving image_assets/grab-original.tiff
[AWS S3 200 2.47114 0 retries] put_object(:acl=>:public_read,:bucket_name=>"example-com-development",:cache_control=>"max-age=29030400",:content_length=>534472,:content_type=>"image/tiff",:data=>Paperclip::AttachmentAdapter: grab.tiff,:key=>"image_assets/grab-original.tiff")

为什么 Paperclip 会反复复制文件?

最佳答案

我的方法是靠不住的。即使它奏效了,它也不会将 image_processing 属性添加到 Photo 模型。

在深入研究延迟回形针 API 之后,以下内容似乎可以解决问题:

PhotosController#create 中:

# Ensure we are flagged as processing
@media_item.photo.prepare_enqueueing_for(:image)

if @media_item.save
# Add Job
@media_item.photo.enqueue_delayed_processing
end

respond_with(:admin, @galleryable, @media_item)

我在这里请求了一个更好的 API:https://github.com/jrgifford/delayed_paperclip/issues/116

关于ruby-on-rails - 将延迟回形针与 S3 直接上传结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27127385/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com