oscript-yadisk
oscript-yadisk copied to clipboard
Ошибка при загрузке файла
При загрузке больших файлов вылетают разные ошибки. Закономерность непонятна, разница в размере файлов.
При загрузке файла ~ 700 Mb вылетает:
ОШИБКА - {Модуль C:\Program Files (x86)\OneScript\lib\yadisk\src\yadisk.os / Ошибка в строке: 171 / Внешнее исключение (System.Net.WebException): The request was aborted: The request was canceled.}
При загрузке файла ~ 4 Gb вылетает:
ОШИБКА - {Модуль C:\Program Files (x86)\OneScript\lib\yadisk\src\yadisk.os / Ошибка в строке: 169 / Внешнее исключение (System.Net.WebException): The underlying connection was closed: Unable to connect to the remote server.}
Подозреваю, что это связано с тем, что скрипт весь файл отправляет одним запросом, а он слишком большой и у C# объекта HttpWebRequest есть какое-то внутреннее ограничение на размер POST/PUT-запросов.
Ошибка возникает при вызове метода Записать(), что позволяет говорить о том, что технически это внутреннее ограничение движка OScript.
Но также это и архитектурная недоработка библиотеки yadisk - API Я.Диска позволяет отправлять большой файл частями, используя Transfer-Encoding: chunked, но я не сделал этого сразу, т.к. на момент создания библиотеки не было методов для разбиения данных на части средствами скрипта, а сейчас я не знаю (не проверял), появились ли они с тех пор.
Пока рекомендую для копирования больших файлов на Я.Диск подключать его как папку, используя возможности WebDav.
@kuntashov вроде бы в 1.0.16 завели нормальную работу с двоичными данными как в 1с. Не все реализовано, но всем, кто тыкал, функциональности пока хватало.
@nixel2007 спасибо, посмотрю
/all буду рад помощи, особенно в виде PR ;-)
не появились, но были в моих дальних планах