Использование POST запроса в зенно для скачивания файла

  • Автор темы Автор темы progr
  • Дата начала Дата начала

progr

Пользователь
Регистрация
28.08.2014
Сообщения
77
Реакции
6
Баллы
8
Есть задача скачать архив с файлами большого размера (порядка 200мб) в зено
затем его распаковать и обработать

Использую для этого кубик POST-запрос
646bab9fb924a641cd4bacc4e4d1b473.png


Но если файл большой, то этот кубик не выполняется и идет на красную линию
Увеличение таймаута не помогает.
Причем в итоге сам файл скачивается но почему то идет на красную линию
При маленьком размере файла система скачивает файл и идет по зеленой ветке.
Как побороть?
 
А в лог ничего не пишет?

Как вариант, по красной стрелке проверять размер файла, и если он большой, то отправлять управление дальше туда же, куда зелёная вела.
 
В лог не пише почему то ничего.
Думал тоже красную ветку завернуть туда же на проверку существования файла.
Но это как бы костыль.
Может кто подскажет правильное решение.
Интуитивно мне кажется что тут проблема в количестве памяти на инстанс.
Скорее всего ПОСТ-кубик считывает ответ сервера в память и только потом сохраняет на диск.
Хотя в таком случае файл должен был быть поврежден, а он нормальный.
 
Наверное, в nonCriticalErrors.txt какой-нибудь необработанный Exception зафиксирован, в общем баг...
Там в настройках есть ещё какой-то параметр с объёмом памяти, можно с ним поиграть — но аккуратно, он резко увеличивает запросы к памяти каждого потока!
 
Таймаут побольше не пробовали поставить?
 
Таймаут пробовал увеличивать
Там в топике написано.
Решение реализовал с помощью С# кода.
Помогло даже на более бОльших файлах чем мне нужно (провел тесты).
Правда пришлось от пост перейти к гет.

Код:
Развернуть Свернуть Копировать
string Url = project.Variables["ConfigUrlAdminka"].Value;
string DataUrl = "securekey=" + project.Variables["ConfigSECUREKEY"].Value + "&getAttachForLetter=true&ZennoID=" + project.Variables["ZennoID"].Value;

string filename = project.Variables["DIR_DOWNLOADED"].Value + "\\" + project.Variables["ZIP_LETTERATTACMENT"].Value;
WebClient myWebClient = new WebClient();
string myStringWebResource = Url + "?" + DataUrl;
myWebClient.DownloadFile(myStringWebResource, filename);

И опять же возник вопрос ситема перестала уходить на красную ветку. Но при мониторинге самого скачиваемого файла видно что буфер не скидывается в процессе загрузки.
И файл сначала нулевой длинны, а потом сразу полный размер.
 
нужен пример реальный для тестов
 
нужен пример реальный для тестов
Так а этот пример чем не реальный?
По сути можно создать проект из нескольких кубиков без всякой инициализации переменных
Главный кубик - ПОСТ запрос на скачивание файла порядка 200мб с какого нибудь урла
и посмотреть что он выдаст
 
для этих целей лучше aria2c или wget использовать.
 
Так а этот пример чем не реальный?
По сути можно создать проект из нескольких кубиков без всякой инициализации переменных
Главный кубик - ПОСТ запрос на скачивание файла порядка 200мб с какого нибудь урла
и посмотреть что он выдаст
приложите проект с таймаутом который используете и конкткретным файлом для скачивания
протестировали, проблем не выявили
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)