Как выбрать предпочтительный способ передачи файлов?
У меня проблема, как мне кажется, с моей конфигурацией просодии. Когда я отправляю файлы (например, фотографии) более ~2 или 3 мегабайта (как я установил экспериментально), используя версию Converstions 2.* (приложение для Android IM), он передает эти файлы, используя одноранговое соединение вместо загрузки этого файла на сервер и отправив ссылку на моего собеседника. Небольшие файлы хорошо переносятся с помощью http upload. И я не мог найти причину такого поведения. Вот несколько строк для модуля 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
1 ответ
Небольшие файлы хорошо переносятся с помощью http upload. И я не мог найти причину такого поведения.
TL; DR: Вы помещаете варианты в неправильном месте. Применяется ограничение по умолчанию в 1 МБ. Это объявляется клиентам, чтобы они знали об этом и могли использовать более эффективные методы передачи p2p для очень больших файлов.
http_upload_path = "/ var / lib / prosody"
Эта строка делает каталог данных Prosodys общедоступным, предоставляя каждому легкий доступ ко всем пользовательским данным. Вы действительно не хотите этого делать. Вам повезло, что вы не указали это в правильном разделе.
И это мой полный конфиг: https://pastebin.com/V6DNYrhe
"http_upload" находится в глобальном modules_enabled
список, который загрузит его на все VirtualHost (ы).
Вы добавили параметры в конец файла конфигурации, поместив их в раздел "Компоненты". Это делает эти параметры применимы только к этому Компоненту.
Таким образом, VirtualHost, в который загружается mod_http_upload, не видит установленных параметров и будет использовать значения по умолчанию.
http_upload_file_size_limit = 536870912 - 512 МБ в байтах
Не делай этого. Встроенный HTTP-сервер Prosodys не оптимизирован для очень больших загрузок. Существует ограничение безопасности для размера HTTP-запроса, которое ограничивает ограничение размера загрузки HTTP до 10M для предотвращения DoS-атак.
Хотя этот лимит можно изменить, я настоятельно рекомендую вам взглянуть на https://modules.prosody.im/mod_http_upload_external.html.