You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Не получается загрузить файл, если в имени есть двоеточие (таймстемп в 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)
The text was updated successfully, but these errors were encountered:
Похоже это баг/фича Яндекс.Диска.
Если добавить disk:/ к пути, то запрос работает:
y.upload(filename, "disk:/"+filename)
То же самое с другими запросами.
В пути можно (если тип запроса позволяет) передавать значения disk:/ (доступ к обычным файлам) и trash:/ (доступ к файлам в корзине), похоже проблема связана с этим.
Возможно в будущем добавлю фикс на уровне библиотеки, как время появится.
Не получается загрузить файл, если в имени есть двоеточие (таймстемп в ISO формате):
Вывод:
The text was updated successfully, but these errors were encountered: