代码之家  ›  专栏  ›  技术社区  ›  Bogdan Lashkov

如何选择首选的文件传输方法?

  •  1
  • Bogdan Lashkov  · 技术社区  · 6 年前

    我认为我的韵律结构有问题。当我使用会话2发送文件(例如照片)时,会增加约2或3兆字节(正如我实验确定的那样)。*版本(android IM app)它使用对等连接传输此文件,而不是将此文件上载到服务器并向对话者发送链接。使用http上载可以很好地传输小文件。我找不到这种行为的原因。 以下是我配置中http\U上传模块的几行代码,这些代码是我从官方文档中获得的(在那里我没有找到关闭对等文件传输的设置):

    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

    1 回复  |  直到 6 年前
        1
  •  1
  •   Bogdan Lashkov    6 年前

    使用http上载可以很好地传输小文件。但我不能 找出这种行为的原因。

    TL;DR:你把期权放错地方了。默认1MB限制 适用。这是向客户公布的,以便他们了解并可以使用 针对超大文件的更高效p2p传输方法。

    http\u upload\u path=“/var/lib/prosody”

    这一行使Prosodys数据目录成为公共目录,允许任何人 访问所有用户数据。你真的不想那样做。你是 幸运的是你没有把它放在正确的部分。

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

    “http\U上载”位于全局 modules_enabled 将加载的列表 将其加载到所有VirtualHost上。

    您已将选项添加到配置文件的末尾,并将其置于 组件部分。这使得这些选项只适用于 组成部分

    因此,加载mod\u http\u upload的虚拟主机看不到任何选项 设置并将使用默认值。

    http\U upload\U file\U size\U limit=536870912--512 MB字节

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

    虽然这一限制可以改变,但我强烈建议您 https://modules.prosody.im/mod_http_upload_external.html 相反

    推荐文章