Что нового

[yadisk] Яндекс.Диск UDF

bugmenot

Новичок
Сообщения
17
Репутация
0
первый файл пошел а дальше
(12) : ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
_yadisk_upload_file($uploads_file[$i], '/krl/' & $uploads_file[$i])
_yadisk_upload_file(^ ERROR

Так я тоже делал.
 

CrazyDoc

Новичок
Сообщения
75
Репутация
2
https://yandex.ru/search/?lr=213&text=Array%20variable%20has%20incorrect%20number%20of%20subscripts%20or%20subscript%20dimension%20range%20exceeded
http://azjio.narod.ru/autoit3_docs/tutorials/error.htm
Пожалуйста, пользуйтесь поиском прежде чем спрашивать.
Код:
_yadisk_set_access_token('b7e44f77bfd1125c81b923e***d19c78')
$uploads_file = _FO_FileSearch (@scriptdir, '~*.new', True, 0, 2, 2)
for $i = 0 to UBound($uploads_file)-1
_yadisk_upload_file($uploads_file, '/krl/' & $uploads_file)
Next
 

bugmenot

Новичок
Сообщения
17
Репутация
0
С фтп это работает, а с этой удф нет. И ваш последний код вообще не отрабатывается. Эти комбинации а уже пробовал поэтому и пишу сюда.
 

CrazyDoc

Новичок
Сообщения
75
Репутация
2
bugmenot сказал(а):
просто подумайте 5 мин и попытайтесь понять что происходит во время выполнения кода. в последнем примере я допустил простейшую опечатку, которую должен понимать каждый - это основы.
 

Gerain

Новичок
Сообщения
1
Репутация
0
Добрый день. Подскажите в чем может быть причина. Текстовые файлы на яндекс диск заливаются, а вот с архивами и pdf возникли проблемы. При подстановке в пример других имен, пишет что файл загружен. Но на диске он не появляется. Пробовал добавить строки как в одном из сообщений - решения не добился.
alex33 сказал(а):
На замену FileRead:
Код:
Local $h_BinFile = FileOpen($s_local_path, 16)
    Local $data = FileRead($h_BinFile)
	FileClose($h_BinFile)
    ;~ Local $content_length = FileGetSize($s_local_path)
    Local $content_length = BinaryLen($data)



Добавлено:
Сообщение автоматически объединено:

Этот код надо вставить после этой строки:
Код:
Local $content_type = __WinHttpMIMEType($s_local_path)

Вместо этой:
Код:
Local $data = FileRead($s_local_path)

 
M

ManuelHorP

Гость
yadisk Яндекс Диск UDF

Подскажите пожалуйста яндекс предостовляет диск 10гб, можно его прикрутить к плееру что бы туда скачивать и смотреть от туда? Если можно то как?
 

Erm

Новичок
Сообщения
1
Репутация
0
Скрипт работает. Файл скачивается. Но очень долго.
Например, файл 250 МБ через скрипт качается более 30 минут, тогда как, если скачать через браузер, то около 1-2 минут.
Можно как-то ускорить скачивание?
 

tech-gs

Знающий
Сообщения
54
Репутация
5
При выполнении _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/


Добавлено:
Сообщение автоматически объединено:

Erm сказал(а):
Скрипт работает. Файл скачивается. Но очень долго.
Например, файл 250 МБ через скрипт качается более 30 минут, тогда как, если скачать через браузер, то около 1-2 минут.
Можно как-то ускорить скачивание?

То же самое. Похоже, это ограничение Яндекса.

К сведению. При выгрузке большого файла на ЯД, если не хватит ОЗУ, скрипт вылетит с ошибкой "Error allocating memory.". И обработчики ошибок здесь не помогут.
У меня получалось примерно слеледующее:
- ОЗУ 2Gb - 59Mb - Выгружает, 305Mb - Ошибка
- ОЗУ 8Gb - 403Mb - Выгружает (за 31:35 мин), 646Mb (48:43 мин), 686Mb - Ошибка.

Увеличить в разы объем выгружаемого файла удалось путем передачи по ByRef во всех процедурах модуля WinHttp.au3 переменной, хранящей выгружаемые данные. Примерно так:
Код:
Func _WinHttpSendRequest($hRequest, $sHeaders = Default, ByRef $vOptional = Default, $iTotalLength = Default, $iContext = Default)
...

Func _WinHttpSimpleSendRequest($hConnect, $sType = Default, $sPath = Default, $sReferrer = Default, ByRef $sDta = Default, $sHeader = Default)
...
 

pirpitum

Новичок
Сообщения
7
Репутация
0
Здравствуйте, выложите куда-нибудь udf из шапки уже недоступна
 
Верх