附件

备注

从 XMPP 到腾讯 QQ 的附件传输无需特殊配置。

对于从腾讯 QQ 桥接到 XMPP 的附件,slidgeqq 提供两种选项:

  • HTTP 上传:slidgeqq 将使用您 XMPP 服务器的上传组件 (XEP-0363)。

  • 不上传:slidgeqq 会将附件复制到其可写入的路径。然后您需要通过 HTTP 服务器(例如 nginx、prosody 的 http_files 等)来提供这些文件。

HTTP 上传

如果您在配置中指定了 ``upload-service=upload.example.org``(参见 通用 slidge 配置),slidgeqq 可以使用您 XMPP 服务器的 HTTP 上传组件 (XEP-0363)。在此设置下,slidgeqq 将像您服务器的普通用户一样上传文件。

示例 1:prosody 的 mod_http_file_share

在 slidgeqq 的 配置文件 中,使用 upload-service=upload.example.org

modules_enabled = {
  -- make sure http_file_share is listed here
  "http_file_share";
}

Component "upload.example.org" "http_file_share"
  -- allow slidgeqq to use the upload component
  http_file_share_access = { "slidgeqq.example.org" }

更多信息:mod_http_file_share

示例 2:ejabberd 的 mod_http_upload

在 slidgeqq 的 配置文件 中,使用 upload-service=example.org

子域的 FQDN (example.org) 应列在顶级 'hosts' 下。

hosts:
  - "example.org"

acl:
  slidge_acl:
    server:
      - "slidgeqq.example.org"

listen:
  -
    port: 5443
    module: ejabberd_http
    tls: true
    request_handlers:
      /upload: mod_http_upload

modules:
  mod_http_upload:
    # Any path that ejabberd has read and write access to
    docroot: /ejabberd/upload
    put_url: "https://@HOST@:5443/upload"
    access:
      - allow: local
      - allow: slidge_acl

有关组件配置的更多信息,请参阅 ejabberd 文档

本地存储(no-upload)

您需要设置 no-upload-path 指向一个目录,并设置 no-upload-url-prefix 指向该目录中文件的 URL 前缀(更多细节请参见 通用 slidge 配置)。例如:no-upload-path=/var/www/slidgeqq-attachments/no-upload-url-prefix=https://example.org/slidgeqq/ 意味着 /var/www/slidgeqq-attachments/some-image.jpg 可以通过 https://example.org/slidgeqq/some-image.jpg 访问。

请确保 no-upload-path 目录对 slidgeqq 可写,并对您的 HTTP 服务器可读。您可以使用 no-upload-file-read-others=true 来轻松实现这一点,但您可能希望限制哪些用户可以读取此目录。

警告

slidgeqq 不会负责删除旧文件,因此您应该设置一个 cron 任务、systemd 定时器或类似机制,定期删除文件,例如使用 find . -mtime +7 -delete && find . -depth -type d -empty -delete 来清理超过一周的文件。

对于以下示例,在slidgeqq的配置中,您需要设置``no-upload-path=/var/lib/slidgeqq/attachments``。

示例 1:prosody 的 http_files

此处,根据`mod_http_files文档 <https://prosody.im/doc/modules/mod_http_files>`_,no-upload-url-prefix``应设置为``https://example.org:5281/files/

modules_enabled = {
  -- make sure http_files is listed here
  "http_files";
}

-- Must be the same value as slidgeqq's no-upload-path
http_files_dir = "/var/lib/slidgeqq/attachments"

示例 2:nginx

此处,no-upload-url-prefix``应设置为``https://example.org/slidgeqq/

server {
  listen 80;
  server_name example.org;
  root /var/www/html;  # if you already have nginx serving files…

  # the section below is for slidgeqq
  location /slidgeqq {
    #  Must be the same value as slidgeqq's no-upload-path
    alias /var/lib/slidgeqq/attachments/;
  }
}

更多信息请参阅`nginx文档 <https://docs.nginx.com/nginx/admin-guide/web-server/serving-static-content/>`_。

后续步骤

为使您的slidgeqq安装达到最佳状态,请设置其 privileges