Daria
Сейчас допишу))
Daria
В пути
Daria
Evgeny
Я думал будет еще одно сообщение, а не исправление, поэтому только сейчас увидел. Да, в целом ощущение "W00t??" пропало
Evgeny
Daria
Yan👀
Кто-нибудь слал файлы с сервера на сервер?
Dmitry
Да, бывает шлю иногда
Dmitry
Yan👀
@corpix Во всех примерах что я видел берется path файла и запихивается в readablestream и так отправляется
правда в сервере-приемнике я вижу тупо path с отправленного сервера который мне ничего не дает
Yan👀
@corpix поэтому интересует видимо как правильно это сделать)
Dmitry
@corpix поэтому интересует видимо как правильно это сделать)
Готового решения у меня нет, но есть например https://github.com/request/request
С её помощью можно отправить данные по HTTP протоколу. Соответственно на другой стороне должен быть HTTP сервер, готовый принять эти данные.
Советую погуглить что-нибудь про отправку файлов по http в nodejs
Dmitry
Yan👀
так и что мне делать с этой строкой-путем файла?
если второй сервер физически в другом месте
я ж его не могу прочитать чтобы сохранить
Yan👀
когда с фронтэнда на сервер приходит файл
там же объект где временный путь на сервере до файла
его размер и тд
Yan👀
тут такого что-то нема)
Michael
1. Читаешь файл в буффер
Michael
2. require('http')
Michael
3. ...
Michael
4. PROFIT
Michael
Стримы-то зачем
Michael
Для отправки
Dmitry
По мне, тк проще и эффективнее(нет буферизации всего файла в памяти).
Michael
Не проще ни разу
Dmitry
Кому что нравится :)
Michael
И в 99% случаев – оверинженеринг на пустом месте
Dmitry
Вот тут категорически не согласен, под нагрузкой "буферизированный подход" сложится быстро и легко.
Yan👀
там нагрузки никакой нет)
одну пикчу гонять только)
Michael
Dmitry
Смешно
Поясни, где смеяться?
Michael
Пример нагрузки в числах, желательно с ссылками на собственный опыт, когда это ложиться
Vladimir
причем здесь нагрузка? вопрос ресурсов
Dmitry
Пример нагрузки в числах, желательно с ссылками на собственный опыт, когда это ложиться
Да примеры с числами тут особо и не нужны. Давай сравним два подхода.
1. При каждом запросе с файлом мы читаем его в память полностью и отправляем.
Основные минусы в том что отправка начнётся после полного простения файла в память и в том что мы не всегда можем знать размер файла. Причем если он будет размером, скажем, 1 ГБ то на каждый запрос мы будем сгружать файл в оперативную память полностью. Когда-нибудь память у нас кончится(вероятно это случится довольно быстро). А ещё ведь есть клиенты с недобрыми намерениями, которые могут специально загружать к нам большие файлы очень медленно, забивая память.
2. При каждом запросе мы вычитываем файл маленькими кусочками с клиента и сразу же отправляем кусочки принимающей стороне(которая поступает также, читает файл по кусочкам и записывает в некоторое персистентное хранилище, например на файловую систему). Серьёзных минусов у этого подхода я не вижу, а вот плюсы в том что мы разумнее расходуем память и можем обслужить большее число клиентов(если клиентов станет много то мы просто будем работать медленнее).
Michael
Неплохо замахнулся на один гигабайт. Файл к тому же можно и просто mmap'нуть ;)
На заливке по дефолту nginx (и не только) зарубит с длинным POST'ом.
И самое главное – проблемы надо решать по мере их поступления.
Evgeny
когда есть вариант сделать за 5 минут с полным чтением или за 5 минут с стримом - зачем делать плохо?
Evgeny
То есть с самого начала подкладывать себе проблему в будущее?
Dmitry
Michael
Человека может вообще устроит по неткату на каждом конце
Evgeny
Чтобы было что решать?
Michael
Вопрошающий похоже вообще не знает про HTTP, а вы про стриминг
Michael
Издеваетесь чтоле
Vladimir
Проблема в том что, если достаточно ресурсов, то зачем заморачиваться?
Evgeny
еще раз - зачем себе закладывать проблему в будущее?
Evgeny
оба варианта равны по сложности
Vladimir
Зачем тратить время на сложное решение?
Vladimir
нет, не равны
Michael
Равны??
Evgeny
чойта?
Vladimir
стриминг сложнее
Evgeny
ну ок о.О
Michael
Плюс оверхеды на проц
Yan👀
причем здесь незнание HTTP я не очень понял
Michael
Если уж пошла пьянка
Yan👀
я просто хочу послать файл не с клиента на сервер
а клиент -> сервер -> другой сервер
и при передаче файла между серверами у меня затык
я не могу в конечном итоге получить в 'другой сервер' данные по файлу которые пришли от обычного яmultipart/form-data
Michael
Должно по content-disposition дробиться
Michael
printf debugging time!!
Yan👀
??
lamo2k
??
http://stackoverflow.com/questions/14862250/sending-a-file-to-node-js-through-tcp
Dmitry
Vlad
Dmitry
pnpm 4ever
Кхм. Спасибо, надо будет тоже посмотреть.
Viacheslav
pnpm 4ever
когда я последний раз его пробовал, он не выполнял postinstall скрипты
Viacheslav
что ломало проект
Viacheslav
может быть сейчас все ок
Viacheslav
надо посмотреть
Denis
Опубликовали фотографии с прошедшего неделю назад Moscow Node.js Meetup 8 в Яндексе - отмечайте себя и друзей! Оставайтесь на связи и следите за анонсами. :) https://www.facebook.com/media/set/?set=oa.595655280614260&type=1
Vladimir
ништяк
Kons
Есть специалисты по Hapi? Подскажите, пожалуйста, можно ли в Hapi, находясь внутри обработчика роута, передать запрос следующему роуту? В express это делается вызовом next() внутри миддлвейра.
Denis
@koistya где-то у себя использует: https://github.com/koistya
Джон
пацаны, не шарите как в терминале создать файл с названием как директория + расширение, если через цикл делать?
Джон
например
for f in */; do
cd $f && touch $f.js $f.tests.js && cd ..;
done
Джон
вот так не работает..
Джон
с кавычками пробовал, тоже не работает
Джон
нагуглить не получается.. не знаю как искать )