YuS_2
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору iNNOKENTIY21 Цитата: Чуть позже доделаю и опубликую скрипт с параметрами, более универсальный. Пока что времени в обрез всё проверить... Цитата: Прочитав API, тоже сначала заморочился этим, сделал и... в итоге что-то пошло не так, url не понравился командлету или яндексу, уже не помню. Тогда запустил без кодирования и всё заработало... В общем, попозже выложу скрипт (он пока ещё слишком корявым получился, хоть и работает), а народ, возможно, потестирует и если вылезут какие глюки - поправлю... Добавлено: Код: <# скачивание файлов c yandex-disk, используется API https://tech.yandex.ru/disk/api/reference/public-docpage/ Первый параметр (обязательный) - публичный ключ или публичная ссылка файла/каталога яндекс-диска Второй параметр - путь к подкаталогу или файлу Третий параметр - ключ для запуска скачивания файла/каталога Пример использования: 1. Получение метаинформации: а) .\script.ps1 'https://yadi.sk/d/hlf1lfC8mKU58' '/!_last' б) .\script.ps1 '0orfHgRGOmkgwFuE7rYB7aj5mqYc+fHoQ12mt3rT5dXGxYQ/8IcYqHCcCAf6aqMeq/J6bpmRyOJonT3VoXnDag==' 2. Скачивание файла: а) .\script.ps1 'https://yadi.sk/d/hlf1lfC8mKU58' '/!_last' -download б) .\script.ps1 '0orfHgRGOmkgwFuE7rYB7aj5mqYc+fHoQ12mt3rT5dXGxYQ/8IcYqHCcCAf6aqMeq/J6bpmRyOJonT3VoXnDag==' '/!_last' -d #> [cmdletbinding()] param ( [parameter(mandatory=$true,helpmessage="Enter public_key or uri+public_key yandex_disk file/folder")] [string]$Uri, [string]$Path, [switch]$Download ) add-type -ass system.web $urlapi,$dld,$key,$pth = "https://cloud-api.yandex.net/v1/disk/public/resources",'/download','?public_key=','&path=' if($uri -notmatch '^http'){$uri = [system.web.httputility]::urlencode($uri)} if($path){$path = [system.web.httputility]::urlencode($path)} function get-metainfo { if($path){ $urlmeta = $urlapi+$key+$uri+$pth+$path } else { $urlmeta = $urlapi+$key+$uri } irm $urlmeta } function get-download { if($path){ $urldld = $urlapi+$dld+$key+$uri+$pth+$path } else { $urldld = $urlapi+$dld+$key+$uri } $udld = (irm $urldld).href $reg_fl = [system.web.httputility]::urldecode([string]$($udld -replace '^.*filename=([^&]+)&.*','$1')) iwr $udld -out $reg_fl } if(!$download){ (get-metainfo)._embedded.items|select name,type,size,created } else {get-download} |
| Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 16:02 19-11-2018 | Исправлено: YuS_2, 18:53 19-11-2018 |
|