Проблема с библиотекой yadisk для работы с Rest API
Для проекта решил взять себе тему с Рест Апи, именно связанную с Яндекс.Диском. Наткнулся на библиотеку-клиент yadisk, вначале попробовал, всё шло нормально. Сегодня пытаюсь выполнить некоторые команды, но натыкаюсь на какие-то ненормальные вещи.
Допустим: по библиотеке метод upload(path_or_file, dst_path, **kwargs) Загружает файл на диск.
Параметры:
path_or_file – путь к файлу или файл-подобный объект для загрузки
dst_path – путь назначения
Хорошо, моя функция:
def upload(y, from_, to_, *kwargs):
operation = y.upload(from_, to_)
работает, проверил, НО, почему программа после заливки файла на яндекс диск, игнорируя путь to_
просто заливает файл в главную директорию, а вместо этого пути (to_) даёт ему название, хотя это должен был быть путь?
Такие фейлы у меня не только с этой командой, но описания основной, думаю, должно быть достаточно первой будет достаточно. Мой код:
import sys
import yadisk
import os
import pyAesCrypt
from os import stat, remove
import random
def upload(y, from_, to_, *kwargs):
operation = y.upload(from_, to_)
def mkdir(y, path, **kwargs):
try:
operation = y.mkdir(path)
print('Status: success')
except:
print('Не выполнено, ошибка')
def move(y, from_path, to_path):
operation = y.move(from_path, to_path)
while True:
status = y.get_operation_status(operation.href)
if status == "in-progress":
time.sleep(5)
print("Still waiting...")
elif status == "success":
print("Success")
break
else:
print("Не выполнено, ошибка: {0}".format(status))
y = yadisk.YaDisk("94885fad3a5e407b8cda5af348597aae", "59d96c74713947b9bad0f691dffb5699")
url = y.get_code_url()
# with open("data.txt", "rb") as token_txt:
# code = token_txt
code = input('Введите код: ')
try:
response = y.get_token(code)
print('n1')
except yadisk.exceptions.BadRequestError:
print('n2')
sys.exit(1)
y.token = response.access_token
print('n3')
if y.check_token():
print("Токен получен")
else:
print("Срок жизни токена истек, либо введён не правильно")
подаю переменные: upload(y, 'D:\\aurora\\lolz.jpg', '\\test-dir')
Так что это за фигня? Может алгоритмы ЯндексДиска изменились? Просто эту библиотеку не обновляли больше года. Заранее спасибо!
Документация на библиотеку: https://yadisk.readthedocs.io/ru/latest/intro.html
Ответы (1 шт):
Укажите в параметре _to полный путь до файла.
Пример:
/test-dir/lolz.jpg
Файлы могут не иметь расширений, поэтому
/test-dir можно интерпретировать как файл test-dir в корневом каталоге.