Форум программистов, компьютерный форум, киберфорум
Node.js
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
274 / 178 / 30
Регистрация: 16.03.2017
Сообщений: 1,631

Многопоточная заливка файлов на сервер

22.01.2018, 01:45. Показов 2178. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, подскажите подход/технологию плииз.

Задача: Сделать веб сервер для массовой заливки (upload) фалов (zip - 0.5-5Мб) от клиентов.
В секунду в "час пик" могут МНОГИЕ "ломануться". И не знаю как однопоточная нода на это сриагирует, а имитировать подобную нагрузку до запуска нечем!

Просто заливка и "складывание в папочку"! Обработка не нужна!

Кстати... Чем обычно сетевую нагрузку имитируют для тестов?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.01.2018, 01:45
Ответы с готовыми решениями:

Заливка файлов на сервер
согласен, тема не нова, но новичкам всегда сложно сообразить самим. как говориться: "повторение - мать... нет, не заикания -...

Многопоточная обработка файлов
Есть массив файлов, которые нужно обработать в многопоточном режиме. Пишу в одном потоке: open(OU, ">$0.log"); my...

Многопоточная загрузка файлов
Добрый день. Недавно я создавал похожую тему, но проблема тогда была в другом. Дело в том что я пишу, что-то вроде менеджера загрузок. У...

10
Software Engineer
 Аватар для Custos
332 / 335 / 55
Регистрация: 23.09.2014
Сообщений: 990
25.01.2018, 01:20
andyj, нода отлично справляется с нагрузками. Если, конечно, нормально писать код.
0
274 / 178 / 30
Регистрация: 16.03.2017
Сообщений: 1,631
26.01.2018, 03:12  [ТС]
Цитата Сообщение от Custos Посмотреть сообщение
Если, конечно, нормально писать код
вопрос и заключается в том что значит "правильно написать код"???

кто занимается upload? "ядро ноды"(движок http/express) или моя программа на ноде?
заливка происходит "в фоне"(а потом вызывает колбэк) или "пока не зальет не передаст фокус моей программе" (не "отпустит" ее)?

еще раз:
10 "заливающих". Каждая заливка длится (допустим) минуту! все запустили заливку почти ОДНОВРЕМЕННО!
Как это выглядит для ноды?
Обработаем первого - пустим второго?
Пустили сигнал "предлагается заливка - согласиться?", получили подтверждение, и работаем дальше (обрабатываем остальных), а после окончания дали мне колбэк на долю секунды для складывания файла куда нужно?

...и еще (много нагуглил, но пока только начал тесты - большинство не работающие):
могу ли я отказаться от приема (например если авторизацию не прошел) или его зальют, скажут мне куда, а я уже могу лишь решать скопировать результат в нужную папку или оставить "во временных"?
есть ли возможность замедлить скорость заливки? введя лимиты на скорость?
...есть для подобного надежные/проверенные методики?
0
Software Engineer
 Аватар для Custos
332 / 335 / 55
Регистрация: 23.09.2014
Сообщений: 990
27.01.2018, 03:19
Лучший ответ Сообщение было отмечено andyj как решение

Решение

Цитата Сообщение от andyj Посмотреть сообщение
10 "заливающих". Каждая заливка длится (допустим) минуту! все запустили заливку почти ОДНОВРЕМЕННО!
Как это выглядит для ноды?
Все запросы без проблем могут обрабатываться одновременно.

Цитата Сообщение от andyj Посмотреть сообщение
могу ли я отказаться от приема
Да

Цитата Сообщение от andyj Посмотреть сообщение
есть ли возможность замедлить скорость заливки? введя лимиты на скорость?
Да

Цитата Сообщение от andyj Посмотреть сообщение
есть для подобного надежные/проверенные методики?
Универсальных методик, которые бы подходили для всего и сразу - нет.
Решения подбираются под конкретную задачу исходя из собственного опыта, или опыта других разработчиков.

Добавлено через 56 секунд
andyj, советую почитать о стримах.
1
the hardway first
Эксперт JS
 Аватар для j2FunOnly
2475 / 1847 / 910
Регистрация: 05.06.2015
Сообщений: 3,610
27.01.2018, 09:46
Цитата Сообщение от Custos Посмотреть сообщение
Сообщение от andyj
есть ли возможность замедлить скорость заливки? введя лимиты на скорость?
Да
Можете подробнее раскрыть ответ на данный вопрос?
0
Software Engineer
 Аватар для Custos
332 / 335 / 55
Регистрация: 23.09.2014
Сообщений: 990
31.01.2018, 00:35
Цитата Сообщение от j2FunOnly Посмотреть сообщение
Можете подробнее раскрыть ответ на данный вопрос?
Способов много. Один из самых простых - прячем ноду за nginx (что, собственно, и советуется всегда делать), и устанавливаем для него желаемое значение $limit_rate.
Таким образом весь "удар" на себя принимает nginx.
0
274 / 178 / 30
Регистрация: 16.03.2017
Сообщений: 1,631
31.01.2018, 12:29  [ТС]
Цитата Сообщение от Custos Посмотреть сообщение
Способов много. Один из самых простых - прячем ноду за nginx (что, собственно, и советуется всегда делать), и устанавливаем для него желаемое значение $limit_rate.
Таким образом весь "удар" на себя принимает nginx.
На сколько я понимаю, это не дает скорости "управляемость"! Например авторизированный (или оплативший услугу) заливает свои файлы на скорости до 10Мб/с, а гость на той-же странице не выше 100кб/с...
Есть для подобного стандартные/НАДЕЖНЫЕ решения? Встречал парочку, но то файл битый приходил, то увеличивался в 5 раз...
0
Software Engineer
 Аватар для Custos
332 / 335 / 55
Регистрация: 23.09.2014
Сообщений: 990
31.01.2018, 12:42
andyj, выше был предоставлен ответ, отталкиваясь от которого легко реализовать то, что Вы хотели.
Или Вы ждете, что Вам на блюдечке принесут готовую реализацию?
0
274 / 178 / 30
Регистрация: 16.03.2017
Сообщений: 1,631
31.01.2018, 12:54  [ТС]
Цитата Сообщение от Custos Посмотреть сообщение
Или Вы ждете, что Вам на блюдечке принесут готовую реализацию?
Было бы здорово! нашел кучу компонент, но либо не работают, либо дают лишь "часть решения"...
Вроде частая задача! на стековере куча подобных вопросов...
0
Software Engineer
 Аватар для Custos
332 / 335 / 55
Регистрация: 23.09.2014
Сообщений: 990
31.01.2018, 12:59
Цитата Сообщение от andyj Посмотреть сообщение
Было бы здорово!
Не вопрос.

 Комментарий модератора 

Правила форума
  • 4.6 Обсуждение вопросов - только в теме на форуме. Приглашения к обсуждению еще где-либо (в том числе и с помощью системы личных сообщений) запрещены, за исключением коммерческих разделов.
  • 5.9 Запрещено отсылать пользователей из тематических разделов в разделы фриланса, а также рекламировать свои услуги или просить/требовать оплату за помощь, кроме разделов для платных услуг.
0
274 / 178 / 30
Регистрация: 16.03.2017
Сообщений: 1,631
31.01.2018, 13:04  [ТС]
Цитата Сообщение от Custos Посмотреть сообщение
Не вопрос
я думал что это скромный метод/функция на десяток строк, а не "проект" на который надо делать заказ...

Не по теме:

p.s. сколько бы подобный модуль стоил КАЧЕСТВЕННО/надежно сделанный(а на школьником-индусом)

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.01.2018, 13:04
Помогаю со студенческими работами здесь

Многопоточная обработка мелких файлов
Добрый день! Программа через ThreadPool обрабатывает массив файлов: foreach (string file in Files) { ...

Заливка файла с компьютера на сервер
народ помогите как програмно очуществить заливку файла с компа на сервер? причем нужна со странички, что то типа броузера и потом выбраный...

Многопоточная закачка файлов: закачиваются только файлы размером менее 9 кб
вообщем такая проблема кинули код чтобы сделать загрузку всех файлов на сервере начал его переделывать хотел сделать закачку чрез...

Заливка Windows Forms приложения на локальный сервер
Всем доброго времени суток! Написал приложение на C# WinForms. База данных на SQL Server. Я развернул локальный серв с помощью XAMPP. Не...

Заливка данных с листа Excel в MS sql сервер
Добрый день, Потребовалось сделать заливку данных с листа Excel, в ячейках которого может содержаться больше количество текстовых...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru