Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Не загружаются файлы с ':' в названии #26

Closed
Jud1cator opened this issue Jan 16, 2023 · 3 comments
Closed
Labels
bug Suspected or confirmed bug language-russian Issue на русском

Comments

@Jud1cator
Copy link

Не получается загрузить файл, если в имени есть двоеточие (таймстемп в ISO формате):

import os
import yadisk

filename = "2022-01-01T00:00:00.000000+03:00.zip"

y = yadisk.YaDisk(token=os.getenv("YDISK_TOKEN"))

y.upload(filename, "/" + filename)

Вывод:

Traceback (most recent call last):
  File "test.py", line 8, in <module>
    y.upload(filename, "/" + filename)
  File "/home/judicator/sandbox/venv/lib/python3.8/site-packages/yadisk/yadisk.py", line 313, in upload
    functions.upload(self.get_session(), path_or_file, dst_path, **kwargs)
  File "/home/judicator/sandbox/venv/lib/python3.8/site-packages/yadisk/functions/resources.py", line 465, in upload
    auto_retry(attempt, n_retries, retry_interval)
  File "/home/judicator/sandbox/venv/lib/python3.8/site-packages/yadisk/utils.py", line 85, in auto_retry
    return func()
  File "/home/judicator/sandbox/venv/lib/python3.8/site-packages/yadisk/functions/resources.py", line 445, in attempt
    link = get_upload_link(session, dst_path, **temp_kwargs)
  File "/home/judicator/sandbox/venv/lib/python3.8/site-packages/yadisk/functions/resources.py", line 241, in get_upload_link
    request.send()
  File "/home/judicator/sandbox/venv/lib/python3.8/site-packages/yadisk/api/api_request.py", line 114, in send
    auto_retry(self._attempt, self.n_retries, self.retry_interval)
  File "/home/judicator/sandbox/venv/lib/python3.8/site-packages/yadisk/utils.py", line 85, in auto_retry
    return func()
  File "/home/judicator/sandbox/venv/lib/python3.8/site-packages/yadisk/api/api_request.py", line 105, in _attempt
    raise get_exception(self.response)
yadisk.exceptions.BadRequestError: Указанный формат ресурса Диска "00:00.000000+03:00.zip" не корректен. Должен начинаться с /. (Specified path "00:00.000000+03:00.zip" has incorrect format / DiskPathFormatError)
@ivknv
Copy link
Owner

ivknv commented Jan 16, 2023

Похоже это баг/фича Яндекс.Диска.
Если добавить disk:/ к пути, то запрос работает:

y.upload(filename, "disk:/" + filename)

То же самое с другими запросами.

В пути можно (если тип запроса позволяет) передавать значения disk:/ (доступ к обычным файлам) и trash:/ (доступ к файлам в корзине), похоже проблема связана с этим.
Возможно в будущем добавлю фикс на уровне библиотеки, как время появится.

ivknv added a commit to ivknv/yadisk-async that referenced this issue Jan 20, 2023
@SphericalPotatoInVacuum

Ещё там можно передавать app:/ для доступа к файлам в папке приложения

@ivknv
Copy link
Owner

ivknv commented Apr 22, 2023

Ещё там можно передавать app:/ для доступа к файлам в папке приложения

Исправил в версии 1.3.3 (1.4.3 для yadisk-async), теперь app:/ работает.

@ivknv ivknv added bug Suspected or confirmed bug language-russian Issue на русском labels Dec 18, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Suspected or confirmed bug language-russian Issue на русском
Projects
None yet
Development

No branches or pull requests

3 participants