Как загрузить файлы на Яндекс Диск, с помощью Python
Ramas, 2019-09-21

Как загрузить файлы на Яндекс Диск, с помощью Python

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

Яндекс.Диск REST API

Для начала получим токен, который необходим для работы с API Диском. Для этого перейдем по ссылке и зарегистрируем наше приложение, назовём его к примеру, backup, и дадим ему полное разрешение для работы с Я.Диском.

API Яндекс Диск
API Яндекс Диск

Теперь нужно просто перейти по этой ниже ссылке, заменив ID приложения на свой (ID вы получили после регистрации приложения), и токен готов.
https://oauth.yandex.ru/authorize?response_type=token&client_id=ID _ПРИЛОЖЕНИЯ

Python

Для работы с Я.Диск REST API будем использовать уже готовую библиотеку, установим ее командой.

pip install yadisk

Попробуем подключиться к нашему Я.Диску используя ранее полученный токен.

import yadisk
y = yadisk.YaDisk(token="токен")
print(y.check_token()) # Проверим токен

Вывод

True

Если результат True, значит вы все сделали правильно :)

Добавим еще небольшой код, который отправит несколько файлом, и создаст папку на Я.Диске.

y.mkdir("/test/Hello Word") # Создать папку
y.upload("file1.txt", "/test/file1.txt") # Загружает первый файл
y.upload("file2.txt", "/test/file2.txt") # Загружает второй файл

Результат.

загрузить файлы на Яндекс

Всё работает отлично, мы смогли загрузить наши файлы и создать папку.

Усложним задачу, и попробует не создать, а отправить всю папку с содержимым, так скажем, сделать backup данных.

import yadisk
import os
from datetime import datetime

y = yadisk.YaDisk(token="Токен")

date = datetime.strftime(datetime.now(), "%d.%m.%Y-%H.%M.%S")
y.mkdir(f'/test/{date}')

folder = []
for i in os.walk('C:\\folder'):
    folder.append(i)
for address, dirs, files in folder:
    for dir in dirs:
        y.mkdir(f'/test/{date}/{dir}')
        print(f'Папка {dir} создана')
    for file in files:
        print(f'Файл {file} загружен')
        y.upload(f'{address}/{file}', f'/test/{date}/{file}')

Результат

API Яндекс Диск

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

Комментарии отсутствуют


Чтобы оставить комментарий Вам необходимо зарегистрироваться или войти