【问题标题】:mod_http_upload - HTTP File Upload (XEP-0363) using Ruby on Railsmod_http_upload - 使用 Ruby on Rails 上传 HTTP 文件 (XEP-0363)
【发布时间】:2016-06-05 08:27:48
【问题描述】:

我想在我的聊天应用程序中的用户之间传输图像。我正在使用 ejabberd 服务器进行聊天。我发现,可以做到这一点的模块是mod_http_upload - HTTP File Upload (XEP-0363)。

我无法弄清楚如何实现这一点。任何可以帮助我弄清楚如何做到这一点的人都会非常有帮助。

【问题讨论】:

    标签: ruby-on-rails ejabberd


    【解决方案1】:

    为了使用这个模块,在 ejabberd.yml 文件中添加配置设置

    listen:
        # add following lines in listen section
        -
          module: ejabberd_http
          port: 5443
          tls: true
          certfile: "/etc/ejabberd/example.com.pem"
          request_handlers:
            "": mod_http_upload
    
      access:    # add following lines in access section
        soft_upload_quota:
          all: 1000 # MiB
        hard_upload_quota:
          all: 1100 # MiB
    
      modules:  #add following lines in modules section 
          mod_http_upload:
          docroot: "/home/xmpp/upload"
          put_url: "http://@HOST@:5443"
    

    在此 url 上上传文件(根据您的设置 url)http://@HOST@:5443 就像您在 ruby​​ on rails 中所做的那样。有关模块配置的更多详细信息,请查看此链接- https://github.com/processone/ejabberd-contrib/blob/master/mod_http_upload/README.txt

    上传文件后,您可以将链接(url)发送给用户下载文件。

    【讨论】:

    • 我已经在 ejabberd.yml 文件中完成了这个配置。添加模块后,Ejabberd 已启动。我如何从后端检查模块是否正常工作,因为在知道之前我还没有准备好前端。 @Sunil Singh
    • 第一个检查模块是否已启用,从带有 127.0.0.1:5280/admin 的 Web 浏览器的 ejabberd 管理员登录。当您在地址栏127.0.0.1:5443 的新浏览器选项卡中键入 put_url 时,它将返回内部服务器错误,表示模块正在工作。(从 127.0.0.1 替换您的 ip)。您也可以通过 ping ip 和端口来检查它。
    • 它显示在管理员登录面板中。它也在 ping 到 ip 和 port 。当我在浏览器中输入 put_url 时,它会在屏幕左下角显示 Not Found。
    • 任何工具可以用来测试两个用户之间的图像传输??并且用户之间的图像传输是否存储在 ejabberd 数据库的任何表中,因为消息传输存储在存档中??
    • 这个模块只能在上传文件后用于文件上传它返回上传文件url和拇指url。如果你想在数据库中存储文件信息你必须自己管理。阅读这个规范xmpp.org/extensions/xep-0363.html
    【解决方案2】:

    在我的情况下,我使用了 https 并且它有效

    【讨论】:

      猜你喜欢
      • 2017-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-25
      • 2011-10-20
      • 1970-01-01
      • 1970-01-01
      • 2010-09-12
      相关资源
      最近更新 更多