select 如何选择文件传输方式?

How select prefered file transport method?

我认为我的韵律配置有问题。当我使用 Converstions 2.* 版本(android IM 应用程序)发送文件(例如照片)超过 ~2 或 3 兆字节(正如我通过实验建立的)时,它使用对等连接而不是上传来传输这些文件这个文件到服务器并发送 link 给我的对话者。小文件使用 http 上传可以很好地传输。而且我找不到这种行为的原因。 以下是我的配置中 http_upload 模块的一些行,我从官方文档中获取(我没有找到用于关闭对等文件传输的设置):

http_upload_file_size_limit = 536870912 -- 512 MB in bytes
http_upload_expire_after = 604800 -- 60 * 60 * 24 * 7
http_upload_quota = 10737418240 -- 10 GB
http_upload_path = "/var/lib/prosody"

这是我的完整配置:https://pastebin.com/V6DNYrhe

Small files are transferred well using http upload. And I couldn't find a reason for such behavior.

TL;DR:你把选项放错了地方。默认 1MB 限制 适用。这是向客户做广告,以便他们知道并可以使用 适用于超大文件的更高效的 p​​2p 传输方法。

http_upload_path = "/var/lib/prosody"

这一行使 Prosodys 数据目录 public,让任何人都容易 访问所有用户数据。你真的不想那样做。你是 幸运的是你没有把它放在正确的部分。

And this is my full config: https://pastebin.com/V6DNYrhe

"http_upload" 在将加载的全局 modules_enabled 列表中 它到所有 VirtualHost(s)。

您已将选项添加到配置文件的末尾,将它们放在 组件部分。这使得这些选项仅适用于 组件。

因此,加载 mod_http_upload 的 VirtualHost 看不到任何选项 设置并将使用默认值。

http_upload_file_size_limit = 536870912 -- 512 MB in bytes

不要这样做。 Prosodys 内置的 HTTP 服务器没有针对很 大量上传。 HTTP 请求大小有一个安全限制 cap HTTP 上传大小限制为 10M 以防止 DoS 攻击。

虽然可以更改该限制,但我强烈建议您查看 https://modules.prosody.im/mod_http_upload_external.html 代替。