Найти тему
programmer's notes (python and more)

Программирование на языке Python. Библиотека yadisk. Пример программного доступа к облаку yandex.ru

Оглавление

Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео.

Библиотека yadisk для доступа к облаку yandex

В прошлой статье об "облаках" я рассматривал возможности доступа к облачному диску mail.ru. А сегодня поговорим о другой библиотеке yadisk и облаке yandex.ru. Сложного тут ничего нет, но требуется последовательность действий. Расскажу и об этом и о библиотеке.

Первое, что придётся сделать - это зарегистрировать ваше приложение. Для этого идём сюда и регистрируем своё приложение. При этом используем свою яндекс-почту, которая, естественно, связана с диском. Выбираем web-приложение. Если всё прошло нормально то получаем две последовательности: идентификатор клиента и пароль.

Имея идентификатор и пароль можно получить токен, который и будет использован в приложении при доступе к своему облачному диску. Вариант получения токена, предложенный авторами библиотеки yadisk, у меня почему-то не работает. Поэтому не буду даже его приводить. Возможно что-то устарело. Но есть другой вариант: пойти сюда и получить в диалоге токен. Я получил и приложение работает.

Ну, а теперь набор функций в виду работающего кода.

Для работы нужно подключить библиотеку yadisk как обычно

import yadisk

Сама же библиотека устанавливается так же известным способом

pip3 install yadisk

yadisk. Получить информацию о яндекс.диске

Во всех примерах, прежде, чем выполнять какие-то действия получаем объект-клиент для данного облачного диска

y = yadisk.YaDisk(token='token')

и далее y - весь набор методов.

Рисунок 1. Получение всевозможной информации о диске. Полный текст программы см. ниже по ссылке
Рисунок 1. Получение всевозможной информации о диске. Полный текст программы см. ниже по ссылке
primer321.py

Метод get_disk_info() выдаёт словарь со всевозможными данными об облачном диске. Выведите его в текст и изучите. Никаких описаний этого словаря я не нашёл. Но изучается просто. В программе выше я привел лишь несколько возможностей. Для моего диска программа вывела

Размер диска:  228864 Мб
Используемое пространство:  58766 Мб
Год регистрации:  2016
Размер корзины: 697 Мб

Всё просто.

Да ещё один важный метод check_token() - возвращает True, если токен работает. Поэтому лучше всегда в начале проверить, что токен работает.

yadisk. Получить список файлов и каталогов по указанному пути

Ниже представлен пример получения списка каталогов и файлов по указанному пути. Как обычно "/" - это корневой каталог вашего диска. Список получаем методом listdir().

Рисунок 2. Получить список файлов и каталогов. Текст программы см. ниже по ссылке
Рисунок 2. Получить список файлов и каталогов. Текст программы см. ниже по ссылке
primer322.py

Также, как вы уже поняли, результат получается в виде словаря. Например, размер можно получить так t[size] (см. текст программы). Также структура словаря вполне себе понятна.

yadisk. Удалить каталог или файл

Для удаления файла или каталога используем метод remove(). Удалять можно и пустой и не пустой каталог. Будьте осторожны. Также важен параметр permanently=False. False означает, что удаление происходит в корзину.

Рисунок 3. Удалить файл или каталог. Текст программы см. ниже по ссылке
Рисунок 3. Удалить файл или каталог. Текст программы см. ниже по ссылке
primer323.py

yadisk. Создать каталог

Для создание каталога нужно указать полный путь к нему. Например

"/book" или "/prog/pyth/inet". Используем метод mkdir().

Рисунок 4. Создать каталог. Текст программы см. ниже по ссылке
Рисунок 4. Создать каталог. Текст программы см. ниже по ссылке
primer324.py

yadisk. Копирование файла с компьютера в облако

Для копирования файла с компьютера в облако нужно в методе upload() указать два параметра имя на компьютере и имя (полное) в облаке

/home/vladoslav/text.txt

и

/texts/tx1.tx

Рисунок 5. Копировать файл с компьютера в облако. Текст программы см. ниже по ссылке
Рисунок 5. Копировать файл с компьютера в облако. Текст программы см. ниже по ссылке
primer325.py

yadisk. Копирование файла из облака на компьютер

Для копирования файла из облака на компьютер нужно в методе download() указать два параметра имя в облаке и имя на компьютере (полное)

/books/bt.pdf

и

/home/vladislav/bk1.pdf

Рисунок 6. Копирование файла из облака на компьютер. Текст программы см. ниже по ссылке
Рисунок 6. Копирование файла из облака на компьютер. Текст программы см. ниже по ссылке
primer326.py

Ну, пока всё!

Базовый курс программирования на Python | programmer's notes (python and more) | Дзен

Пишите свои предложения и замечания, и занимайтесь программированием, а также проектированием баз данных, хотя бы для поддержания уровня интеллекта.

Облака плывут, облака...
Облака плывут, облака...