首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Delayed_Paperclip + Sidekiq +Mongoid-剪纸

Delayed_Paperclip + Sidekiq +Mongoid-剪纸
EN

Stack Overflow用户
提问于 2015-09-02 14:53:59
回答 1查看 461关注 0票数 1

我正在使用Rails 4.1引擎来处理用户上传的照片和视频。我正在使用蒙哥德-剪纸剪辑处理上传和纸剪辑-av-转码器来编码视频的几种格式。所有文件都存储在S3中。所有这些都很好,但正如您所预期的那样,编码视频可能需要相当长的时间,所以下一步是在后台实现这一点。我搜索了一下,发现回形针似乎能满足我的需要。此后,塞迪基克似乎是处理后台处理的最佳选择。

现在的问题是,我不能让所有这些一起工作。运行我的单元测试,我得到了NoMethodError: undefined method 'process_in_background',所以问题似乎存在于Delayed_Paperclip上,尽管它没有特殊的设置。

这就是引发问题的模型。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
module MyEngine
  class Video
    include Mongoid::Document
    include Mongoid::Paperclip

    has_mongoid_attached_file :file,
      :path => ':hash.:extension',
      :hash_secret => "the-secret",
      :storage => :s3,
      :url => ':s3_domain_url',
      :s3_credentials => File.join(Rails.root, 'config', 's3.yml'),
      :bucket => "my-bucket-#{Rails.env}",
      :styles => {
        :mp4 => { :format => 'mp4', :convert_options => { :output => { :vcodec => 'libx264', :acodec => 'copy' } } },
        :ogg => { :format => 'ogg', :auto_rotate => true  },
        :webm => { :format => 'webm', :auto_rotate => true  },
        :thumb => { :geometry => "250x187#", :format => 'jpg', :time => 10, :auto_rotate => true }
      },
      :processors => [:transcoder]

    validates_attachment :file, :content_type => { :content_type => ["video/x-flv", "video/mp4", "video/ogg", "video/webm", "video/x-ms-wmv", "video/x-msvideo", "video/quicktime", "video/3gpp"] }

    process_in_background :file
  end
end

我尝试过将require "delayed_paperclip"添加到lib/myengine/myengine.rb文件中,但这并没有帮助。

关于Sidekiq,我在test_helper.rb中添加了以下内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
require 'sidekiq/testing'
Sidekiq::Testing.inline!

请注意,我没有忘记运行bundle install,Redis已经启动并正在运行。我用的是蒙哥德,不是活动记录。

我做错什么了?有人成功地使用了这个设置吗?还有别的宝石我应该试试吗?

相关信息:

  • Delayed_paperclip 2.9.1
  • Mongoid 4.0.2
  • 蒙古-纸夹0.0.9
  • 回形针4.2.1
  • 回形针-av-转码器0.6.4
  • Rails 4.1.9
  • Sidekiq 3.5.0
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-14 09:11:42

我一直在深入研究delayed_paperclip的代码,它肯定与ActiveRecord有关联,因此与Mongoid不兼容。我尝试了一下队列,但gem已经4年没有更新了,据我所知,它似乎无法与rails/mongoid/回形针的当前版本一起工作。

因此,我决定解决我的问题的最好方法是重写与delayed_paperclip集成的ActiveRecord代码,并让它与Mongoid一起工作。

这就是我最后所做的,而且到目前为止似乎工作得很好:

lib/myengine.rb

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
require "mongoid_paperclip"
require "paperclip/av/transcoder"
require "delayed_paperclip"
require "myengine/engine"

module Myengine
end

DelayedPaperclip::Railtie.class_eval do

  initializer 'delayed_paperclip.insert_into_mongoid' do |app|
    ActiveSupport.on_load :mongoid do
      DelayedPaperclip::Railtie.insert
    end

    if app.config.respond_to?(:delayed_paperclip_defaults)
      DelayedPaperclip.options.merge!(app.config.delayed_paperclip_defaults)
    end
  end

  # Attachment and URL Generator extends Paperclip
  def self.insert
    Paperclip::Attachment.send(:include, DelayedPaperclip::Attachment)
    Paperclip::UrlGenerator.send(:include, DelayedPaperclip::UrlGenerator)
  end
end

DelayedPaperclip::InstanceMethods.class_eval do

  def enqueue_post_processing_for name
    DelayedPaperclip.enqueue(self.class.name, read_attribute(:id).to_s, name.to_sym)
  end
end

然后,只需将delayed_paperclip胶水包含到模型中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
module Myengine
  class Video
    include Mongoid::Document
    include Mongoid::Paperclip
    include DelayedPaperclip::Glue      # <---- Include this

    has_mongoid_attached_file :file,
      :path => ':hash.:extension',
      :hash_secret => "the-secret",
      :storage => :s3,
      :url => ':s3_domain_url',
      :s3_credentials => File.join(Rails.root, 'config', 's3.yml'),
      :bucket => "my-bucket-#{Rails.env}",
      :styles => {
        :mp4 => { :format => 'mp4', :convert_options => { :output => { :vcodec => 'libx264', :acodec => 'copy' } } },
        :ogg => { :format => 'ogg', :auto_rotate => true  },
        :webm => { :format => 'webm', :auto_rotate => true  },
        :thumb => { :geometry => "250x187#", :format => 'jpg', :time => 10, :auto_rotate => true }
      },
      :processors => [:transcoder]

    validates_attachment :file, :content_type => { :content_type => ["video/x-flv", "video/mp4", "video/ogg", "video/webm", "video/x-ms-wmv", "video/x-msvideo", "video/quicktime", "video/3gpp"] }

    process_in_background :file
  end
end

希望这能省去其他人的麻烦。

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

https://stackoverflow.com/questions/32364454

复制
相关文章
使用 iptables 将 Kubernetes Service 流量随机发送到 Pod
本文将带大家了解 Kubernetes 的 kube-proxy 组件如何使用 iptables 将 service 流量随机发送到 Pod,目的是实现 service 所需的 iptables 规则。
CNCF
2021/04/21
1.7K0
python web应用_如何使用Python将通知发送到Web应用
如何使用Python将通知发送到Web应用 (How to send notifications to your Web App using Python)
用户7886150
2021/01/01
2.5K0
使用Logstash接收Netflow日志并发送到syslog服务器
接受90端口的netflow日志,解析netflow中的源IP、端口、目的IP、端口,并输出syslog到任意端口
heasy3
2020/08/02
2K0
linux审计日志在哪里,linux – 将审计日志发送到SYSLOG服务器
这个答案可能仍然有效,但在2014年,using the Audisp plugin是更好的答案.
全栈程序员站长
2022/08/23
4.1K0
将CSV的数据发送到kafka(java版)
前面的图可以看出,读取CSV再发送消息到kafka的操作是Java应用所为,因此今天的主要工作就是开发这个Java应用,并验证;
程序员欣宸
2021/04/16
3.5K0
将CSV的数据发送到kafka(java版)
使用alpha混合将图像分层和图像抗锯齿。
import matplotlib.pyplot as plt import numpy as np methods = [None, 'none', 'nearest', 'bilinear', 'bicubic', 'spline16', 'spline36', 'hanning', 'hamming', 'hermite', 'kaiser', 'quadric', 'catrom', 'gaussian', 'bessel', 'mitchell',
裴来凡
2022/05/28
1.2K0
使用alpha混合将图像分层和图像抗锯齿。
如何将Flink应用的日志发送到kafka
产线环境上的Flink应用是长时运行的应用,日志量较大,通过flink web页面查看任务日志会导致浏览器卡死,通过日志排查问题非常不便。因此,需要将flink应用的日志发送到外部系统,方便进行日志检索
Eights
2020/09/10
2.4K0
如何将Flink应用的日志发送到kafka
系统捕获异常并发送到服务器
大家都知道,现在安装Android系统的手机版本和设备千差万别,在模拟器上运行良好的程序安装到某款手机上说不定就出现崩溃的现象,开发者个人不可能购买所有设备逐个调试,所以在程序发布出去之后,如果出现了
xiangzhihong
2018/01/30
9400
系统捕获异常并发送到服务器
构建fluentd镜像将收集的日志发送到elasticsearch
构建脚本: version: "3" services: fluentd: build: ./fluentd volumes: - ./fluentd/conf:/fluentd/etc privileged: true ports: - "24224:24224" - "24224:24224/udp" environment: - TZ=Asia/Shanghai restart: always
johnhuster的分享
2022/03/28
5340
Office.Core服务器无法使用问题
1).通过webconfig中增加模拟,加入管理员权限, <identity impersonate="true" userName="系统管理员" password="系统管理员密码"/> 2).这样就能够启动Application进程,操作EXCEL了,能够新建EXCEL,导出EXCEL,但是还是不能打开服务器端的EXCEL文件
happlyfox
2018/10/31
9270
Ubuntu下无法使用SecureCRT连接服务器
把配置文件中的"PermitRootLogin without-password"加一个"#"号注释掉,再增加一句"PermitRootLogin yes",保存文件,如下图。这样做是为了允许root用户登录
知忆
2021/06/09
4.3K0
H3C交换机配置信息中心将日志发送到日志服务器
摘自官方文档 http://www.h3c.com/cn/d_200711/317187_30005_0.htm#_Toc164570689
yuanfan2012
2020/06/10
10.4K0
H3C交换机配置信息中心将日志发送到日志服务器
[记]使用jQuery Jcrop 图像裁剪无法更换图片的坑
​ 因为公司需求,需要完成一个显示屏定制的业务,用户自主上传图片然后在线裁剪的功能,我选择了jQuery Jcrop这个插件。 先看看怎么使用 使用方法 载入 CSS 文件 <link rel="stylesheet" href="jquery.Jcrop.css"> 载入 JavaScript 文件 <script src="jquery.js"></script> <script src="jquery.Jcrop.js"></script> 给 IMG 标签加上 ID <img id="e
游魂
2018/06/08
1.6K0
Python中日志异步发送到远程服务器
背景 在Python中使用日志最常用的方式就是在控制台和文件中输出日志了,logging模块也很好的提供的相应 的类,使用起来也非常方便,但是有时我们可能会有一些需求,如还需要将日志发送到远端,或者直
CeshirenTester
2022/06/09
3820
使用K-Means算法将图像压缩6倍!
在本文中,我们将讨论K-Means算法,它是一种基于聚类的无监督机器学习算法。此外,我们还将讨论如何使用K-Means来压缩图像。
Python数据科学
2019/04/09
1.4K0
使用K-Means算法将图像压缩6倍!
如何将SVG图像使用在HTML网站中
使用PS生成SVG图像用编辑器打开发现是data:img/png;base64而非/path
Din
2018/10/19
4.7K0
如何将SVG图像使用在HTML网站中
Apache报错:无法使用可靠的服务器域名
网上很多说改为 ServerName localhost:80, 其实去掉前面注释报错就不显示了
很酷的站长
2023/02/18
1.1K0
Apache报错:无法使用可靠的服务器域名
使用 Proxifier 将本机代理为服务器
  咱们并不能直接使用 Proxifier 进行代理,需要为其先创建一个隧道。就好比咋给两个世界搞一个虫洞,让小飞机可以穿过虫洞到达另外一个世界。常见的 SSH 工具都有构建隧道的功能,我这里以 FinalShell 为例。毫无疑问,第一步先连接上服务器。第二步点击右下角设置 ☞ 然后选择隧道 ☞ 添加隧道。其中隧道名称可以任意填写,类型选择 SOCKS5,监听端口任意,该端口为隧道服务的端口,IP 为隧道的 ip,一般为 127.0.0.1。
Demo_Null
2020/09/28
4.8K0
使用 Proxifier 将本机代理为服务器
使用OpenTelemetry Operator将可观测数据发送到SigNoz
OpenTelemetry Operator 是一个用于部署和管理 OpenTelemetry 组件的 Kubernetes Operator。它是一个自定义的 Kubernetes 控制器,使用 Operator 模式自动化了 OpenTelemetry 环境的部署、配置和管理过程。
我是阳明
2023/09/11
1.1K0
使用OpenTelemetry Operator将可观测数据发送到SigNoz
点击加载更多

相似问题

无法将图像发送到服务器

21

如何使用angular-file-upload获取图像尺寸

20

无法将图像发送到Go服务器

16

无法将图像发送到我的服务器

20

使用NSURLSession将图像发送到服务器

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文