Русские буквы в имени файлов при загрузке в RocketChat

При использовании proxy сервера для доступа к RocketChat возникает проблема с некорректной передачей ссылки. По умолчанию в ссылке используется имя файла в формате UTF-8, но при передаче через proxy ссылке передается некорректно. Не очень важно в чем причина данной ошибки — в обработке proxy сервером или во framework meteor. Использование в ссылке имени файла, даже учитывая, что оно будет перекодировано в “правильный” формат (US-ASCII), является неудачным решением.

Исправить данную проблему достаточно просто надо изменить только одну строку кода. Здесь (GitHub file: app/file-upload/server/methods/sendFileMessage.js) представлена корректировка для исходного кода до сборки сервера. Если вы используете уже собранный сервер, например внутри Docker, вы можете просто отредактировать файл: /app/bundle/programs/server/app/app.js. Найдите метод: sendFileMessage и замените строку:

...
Meteor.methods({
	async sendFileMessage(roomId, store, file, msgData = {}) {
...
/* закомментируйте или удалите это строку */
                // const fileUrl = FileUpload.getPath("".concat(file._id, "/").concat(encodeURI(file.name)));
/* вставьте это строку */
                const fileUrl = FileUpload.getPath("".concat(file._id, "/file"));
...