При выполнении _yadisk_move() и _yadisk_copy(), если в пути назначения $s_yadisk_path_destination присутствуют пробелы, то получаем ошибку HTTP/1.1 400 Bad Request.
Пробелы в пути источника $s_yadisk_path допускаются.
Поэтому, код нужно поправить примерно так (для _yadisk_copy() аналогично):
Func _yadisk_move($s_yadisk_path, $s_yadisk_path_destination, $f_overwrite = False) ... Local $head = _ __yadisk_default_head() & _ 'Destination: ' & StringReplace($s_yadisk_path_destination, " ", "%20") & @CRLF & _ 'Overwrite: ' & $f_overwrite & @CRLF ...EndFunc ;==>_yadisk_move Если это связано с ограничением набора символов в URL-адресах, тогда нужно применять конвертирование $s_yadisk_path_destination в корректный URL-адрес.
И еще одно уточнение. По документации Яндекса, признак перезаписи файла по умолчанию = True. В коде это переменная $f_overwrite.
https://tech.yandex.ru/disk/doc/dg/reference/copy-docpage/Добавлено: Май 02, 2018, 23:19:42
Скрипт работает. Файл скачивается. Но очень долго.
Например, файл 250 МБ через скрипт качается более 30 минут, тогда как, если скачать через браузер, то около 1-2 минут.
Можно как-то ускорить скачивание?
То же самое. Похоже, это ограничение Яндекса.
К сведению. При выгрузке большого файла на ЯД, если не хватит ОЗУ, скрипт вылетит с ошибкой "Error allocating memory.". И обработчики ошибок здесь не помогут.
У меня получалось примерно слеледующее:
- ОЗУ 2Gb - 59Mb - Выгружает, 305Mb - Ошибка
- ОЗУ 8Gb - 403Mb - Выгружает (за 31:35 мин), 646Mb (48:43 мин), 686Mb - Ошибка.
Увеличить в разы объем выгружаемого файла удалось путем передачи по ByRef во всех процедурах модуля WinHttp.au3 переменной, хранящей выгружаемые данные. Примерно так: