Асинхронный API
- class yadisk.AsyncClient(id: str = '', secret: str = '', token: str = '', *, default_args: dict[str, Any] | None = None, session: AsyncSession | Literal['aiohttp'] | Literal['httpx'] | None = None, open_file: Callable[[str | bytes, Literal['rb'] | Literal['wb']], Awaitable[BinaryAsyncFileLike]] | Callable[[str | bytes, Literal['rb'] | Literal['wb']], Awaitable[BinaryIO]] | None = None, session_factory: Callable[[], AsyncSession] | None = None)[исходный код]
Реализует доступ к REST API Яндекс.Диска (реализует асинхронный API).
Реализация HTTP-клиента может быть указана с помощью параметра
session
. По умолчанию используетсяAsyncHTTPXSession
. см. Доступные реализации сессий для других списка других доступных вариантов.Почти все методы
AsyncClient
(те, которые принимают **kwargs) принимают некоторые дополнительные параметры:n_retries - int, максимальное число повторных попыток запроса
retry_interval - float, задержка между повторными попытками (в секундах)
headers - dict или None, дополнительные заголовки запроса
timeout - tuple (
(<connect timeout>, <read timeout>)
) или float (указывает одновременно и connect и read timeout), таймаут запроса в секундах
Дополнительные параметры, относящиеся к конкретной HTTP библиотеке могут также быть переданы, см. документацию для конкретных подклассов
AsyncSession
(Доступные реализации сессий).Примечание
Не забывайте вызывать
AsyncClient.close
или используйте async with, чтобы закрыть все соединения. Иначе, вы можете получить предупреждение.В
Client
это делалается в деструкторе, но т.к.AsyncClient.close
- корутина, здесь этого сделать нельзя, поэтому приходится делать это явно.- Параметры:
id – идентификатор приложения
secret – пароль приложения
token – токен
default_args – dict или None, аргументы по умолчанию для методов. Можно использовать, чтобы задать стандартный таймаут, заголовки и т.д.
session – None, str или объект
AsyncSession
. Еслиsession
- строка, то нужный класс будет автоматически импортирован, допустимые значения: *"aiohttp"
-AIOHTTPSession
*"httpx"
-AsyncHTTPXSession
open_file – None или асинхронная функция, которая открывает файл для чтения или записи (
aiofiles.open()
по умолчанию)session_factory – оставлен для совместимости, функция, возвращающая объект
AsyncSession
- Переменные:
id – str, идентификатор приложения
secret – str, пароль приложения
token – str, токен
default_args – dict, аргументы по умолчанию для методов. Можно использовать, чтобы задать стандартный таймаут, заголовки и т.д.
session – текущая сессия (объект
AsyncSession
)open_file – асинхронная функция, которая открывает файл для чтения или записи (
aiofiles.open()
по умолчанию)
Большинство запросов к API могут вызвать следующие исключения:
- Исключение:
RequestError – HTTP-клиент вызвал исключение во время отправления запроса
BadRequestError – сервер вернул код 400.
FieldValidationError – запрос содежит поля с некорректными данными.
UnauthorizedError – сервер вернул код 401.
ForbiddenError – сервер вернул код 403.
NotAcceptableError – сервер вернул код 406.
ConflictError – сервер вернул код 409.
PayloadTooLargeError – сервер вернул код 413.
UnsupportedMediaError – сервер вернул код 415.
LockedError – сервер вернул код 423.
TooManyRequestsError – сервер вернул код 429.
InternalServerError – сервер вернул код 500.
BadGatewayError – сервер вернул код 502.
UnavailableError – сервер вернул код 503.
GatewayTimeoutError – сервер вернул код 504.
InsufficientStorageError – сервер вернул код 509.
UnknownYaDiskError – другая неизвестная ошибка
- async check_token(token: str | None = None, /, **kwargs) bool [исходный код]
Проверяет, действителен ли токен.
- Параметры:
token – токен, подлежащий проверке, то же самое, что self.token при None
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Результат:
bool
- async close() None [исходный код]
Закрывает сессию. Не вызывайте этот метод, пока другие потоки используют этот объект.
Этот метод неявно вызывается конструкцией async with.
- async copy(src_path: str, dst_path: str, /, **kwargs) AsyncResourceLinkObject | AsyncOperationLinkObject [исходный код]
Копирует src_path в dst_path. Если операция выполняется асинхронно, возвращает ссылку на операцию, иначе, возвращает ссылку на новый ресурс.
- Параметры:
src_path – исходный путь
dst_path – путь назначения
overwrite – если True, путь назначения может быть перезаписан, иначе будет вызвана ошибка
force_async – заставляет выполнять операцию асинхронно
fields – список ключей, которые будут включены в ответ
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
PathNotFoundError – ресурс не был найден на Диске
PathExistsError – путь назначения уже существует
ForbiddenError – у приложения не хватает прав, чтобы выполнить данный запрос
InsufficientStorageError – невозможно выполнить запрос из-за нехватки свободного места на Диске
ResourceIsLockedError – запрашиваемый ресурс заблокирован другой операцией
UploadTrafficLimitExceededError – достигнут лимит на загрузку файлов
- Результат:
- async download(src_path: str, path_or_file: str | bytes | BinaryIO | BinaryAsyncFileLike, /, **kwargs) AsyncResourceLinkObject [исходный код]
Скачивает файл.
- Параметры:
src_path – исходный путь
path_or_file – путь назначения или файл-подобный объект
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
PathNotFoundError – ресурс не был найден на Диске
ForbiddenError – у приложения не хватает прав, чтобы выполнить данный запрос
ResourceIsLockedError – запрашиваемый ресурс заблокирован другой операцией
- Результат:
AsyncResourceLinkObject
, ссылка на исходный ресурс
- async download_by_link(link: str, file_or_path: str | bytes | BinaryIO | BinaryAsyncFileLike, /, **kwargs) None [исходный код]
Скачивает файл по уже полученной ссылке.
- Параметры:
link – ссылка для скачивания
file_or_path – путь назначения или файл-подобный объект
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- async download_public(public_key: str, file_or_path: str | bytes | BinaryIO | BinaryAsyncFileLike, /, **kwargs) AsyncPublicResourceLinkObject [исходный код]
Скачивает публичный ресурс.
- Параметры:
public_key – публичный ключ или URL к ресурсу
file_or_path – путь назначения или файл-подобный объект
path – относительный путь к ресурсу внутри публичной папки
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
PathNotFoundError – ресурс не был найден на Диске
ForbiddenError – у приложения не хватает прав, чтобы выполнить данный запрос
ResourceIsLockedError – запрашиваемый ресурс заблокирован другой операцией
- Результат:
- async exists(path: str, /, **kwargs) bool [исходный код]
Проверяет, существует ли path.
- Параметры:
path – путь к ресурсу
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
ForbiddenError – у приложения не хватает прав, чтобы выполнить данный запрос
- Результат:
bool
- get_auth_url(type: Literal['code'] | Literal['token'], device_id: str | None = None, device_name: str | None = None, redirect_uri: str | None = None, login_hint: str | None = None, scope: str | None = None, optional_scope: str | None = None, force_confirm: bool = True, state: str | None = None, code_challenge: str | None = None, code_challenge_method: Literal['plain'] | Literal['S256'] | None = None, display: None = None) str [исходный код]
Получает URL для аутентификации для пользователя. Данный метод не отправляет никаких HTTP запросов.
- Параметры:
type – тип ответа («code», чтобы получить код подтверждения или «token», чтобы получить токен автоматически)
device_id – уникальный идентификатор устройства, от 6 до 50 символов
device_name – имя устройства, не более 100 символов
redirect_uri – URL на который пользователь будет перенаправлен после предоставления доступа приложению, по умолчанию используется первый URI, указанный в настройках приложения
display – ничего не делает, оставлен для совместимости
login_hint – username или email аккаунта, для которого будет получен токен
scope – str, список разрешений для приложения
optional_scope – str, список опциональных разрешений для приложения
force_confirm – Если True, пользователь должен будет разрешить доступ к аккаунту, даже если он уже это сделал до этого
state – Строка состояния, которую Яндекс.OAuth возвращает без изменений (<= 1024 символов)
code_challenge – строка, полученная из сгенерированного значения
code_verifier
с помощью одного из двух возможных преобразований (plain или S256)code_challenge_method – Указывает функцию, которая будет использована для преобразования значения
code_verifier
, возможные значения:"plain"
и"S256"
(рекомендуется). Если используется"S256"
, значениеcode_challenge
должно быть получено путём хэширования значенияcode_verifier
и кодирования в base64
- Исключение:
ValueError – были переданы неправильные аргументы
- Результат:
URL для аутентификации
- get_code_url(device_id: str | None = None, device_name: str | None = None, redirect_uri: str | None = None, login_hint: str | None = None, scope: str | None = None, optional_scope: str | None = None, force_confirm: bool = True, state: str | None = None, code_challenge: str | None = None, code_challenge_method: Literal['plain'] | Literal['S256'] | None = None, display: None = None) str [исходный код]
Получает URL для получения пользователем кода подтверждения. Он может быть использован для получения токена. Данный метод не отправляет никаких HTTP запросов.
- Параметры:
device_id – уникальный идентификатор устройства, от 6 до 50 символов
device_name – имя устройства, не более 100 символов
redirect_uri – URL на который пользователь будет перенаправлен после предоставления доступа приложению, по умолчанию используется первый URI, указанный в настройках приложения
display – ничего не делает, оставлен для совместимости
login_hint – username или email аккаунта, для которого будет получен токен
scope – str, список разрешений для приложения
optional_scope – str, список опциональных разрешений для приложения
force_confirm – Если True, пользователь должен будет разрешить доступ к аккаунту, даже если он уже это сделал до этого
state – Строка состояния, которую Яндекс.OAuth возвращает без изменений (<= 1024 символов)
code_challenge – строка, полученная из сгенерированного значения
code_verifier
с помощью одного из двух возможных преобразований (plain или S256)code_challenge_method – Указывает функцию, которая будет использована для преобразования значения
code_verifier
, возможные значения:"plain"
и"S256"
(рекомендуется). Если используется"S256"
, значениеcode_challenge
должно быть получено путём хэширования значенияcode_verifier
и кодирования в base64
- Исключение:
ValueError – были переданы неправильные аргументы
- Результат:
URL для аутентификации
- async get_device_code(**kwargs) DeviceCodeObject [исходный код]
Данный запрос используется для авторизации с помощью страницы Яндекс OAuth. В данном случае пользователь должен ввести код подтверждения (
user_code
) в браузере на странице Яндекс OAuth. После того как пользователь ввёл код, приложение может обменятьdevice_code
на токен с помощью методаAsyncClient.get_token_from_device_code()
.- Параметры:
device_id – уникальный идентификатор устройства (между 6 и 50 символами)
device_name – имя устройства, не более 100 символов
scope – str, список разрешений для приложения
optional_scope – str, список опциональных разрешений для приложения
- Исключение:
InvalidClientError – неправильный идентификатор или пароль приложения
BadRequestError – неправильные параметры запроса
- Результат:
DeviceCodeObject
, содержащийuser_code
иdevice_code
- async get_disk_info(**kwargs) DiskInfoObject [исходный код]
Получает информацию о диске.
- Параметры:
fields – список ключей, которые будут включены в ответ
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
ForbiddenError – у приложения не хватает прав, чтобы выполнить данный запрос
- Результат:
- async get_download_link(path: str, /, **kwargs) str [исходный код]
Получает ссылку на скачивание файла (или папки).
- Параметры:
path – путь к ресурсу
fields – список ключей, которые будут включены в ответ
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
PathNotFoundError – ресурс не был найден на Диске
ForbiddenError – у приложения не хватает прав, чтобы выполнить данный запрос
ResourceIsLockedError – запрашиваемый ресурс заблокирован другой операцией
- Результат:
str
- async get_files(**kwargs) AsyncGenerator[AsyncResourceObject, None] [исходный код]
Получить плоский список всех файлов (без папок).
- Параметры:
offset – отступ от начала списка
limit – максимальное количество элементов списка
media_type – тип файлов, которые будут включены в список
sort – str, поле использумое для сортировки вложенных ресурсов
preview_size – размер превью файла
preview_crop – bool, обрезает превью согласно размеру, заданному в preview_size
fields – список ключей, которые будут включены в ответ
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
ForbiddenError – у приложения не хватает прав, чтобы выполнить данный запрос
- Результат:
асинхронный генератор
AsyncResourceObject
- async get_last_uploaded(**kwargs) AsyncGenerator[AsyncResourceObject, None] [исходный код]
Получает список последних загруженных файлов, отсортированный по дате загрузки.
- Параметры:
limit – максимальное число элементов в списке
media_type – тип файлов, которые будут включены в список
preview_size – размер превью файла
preview_crop – bool, обрезает превью согласно размеру, заданному в preview_size
fields – список ключей, которые будут включены в ответ
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
ForbiddenError – у приложения не хватает прав, чтобы выполнить данный запрос
- Результат:
асинхронный генератор
AsyncResourceObject
- async get_meta(path: str, /, **kwargs) AsyncResourceObject [исходный код]
Получает мета-информацию о ресурсе.
- Параметры:
path – путь к ресурсу
limit – количество ресурсов в папке, которые будут включены в ответ
offset – количество ресурсов в папке, которые будут пропущены
preview_size – размер превью файла
preview_crop – bool, обрезает превью согласно размеру, заданному в preview_size
sort – str, поле использумое для сортировки вложенных ресурсов
fields – список ключей, которые будут включены в ответ
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
PathNotFoundError – ресурс не был найден на Диске
ForbiddenError – у приложения не хватает прав, чтобы выполнить данный запрос
- Результат:
- async get_operation_status(operation_id, /, **kwargs) str [исходный код]
Получает статус операции.
- Параметры:
operation_id – идентификатор операции или ссылка на нее
fields – список ключей, которые будут включены в ответ
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
OperationNotFoundError – указанная операция не найдена
- Результат:
str,
"in-progress"
означает, что операция в процессе,"success"
означает, что операция успешно завершилась,"failed"
означает, что операция завершилась с ошибкой
- async get_public_download_link(public_key: str, /, **kwargs) str [исходный код]
Получает ссылку на скачивание публичного ресурса.
- Параметры:
public_key – публичный ключ или URL к ресурсу
path – относительный путь к ресурсу внутри публичной папки
fields – список ключей, которые будут включены в ответ
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
PathNotFoundError – ресурс не был найден на Диске
ForbiddenError – у приложения не хватает прав, чтобы выполнить данный запрос
ResourceIsLockedError – запрашиваемый ресурс заблокирован другой операцией
- Результат:
str
- async get_public_meta(public_key: str, /, **kwargs) AsyncPublicResourceObject [исходный код]
Получает мета-информацию о публичном ресурсе.
- Параметры:
public_key – публичный ключ или URL к ресурсу
path – относительный путь к ресурсу внутри публичной папки. Указывая ключ опубликованной папки через public_key, вы можете запросить метаинформацию любого ресурса внутри неё.
offset – отступ от начала списка вложенных ресурсов
limit – максимальное количество элементов списка вложенных ресурсов
sort – str, поле использумое для сортировки вложенных ресурсов
preview_size – размер превью файла
preview_crop – bool, разрешить обрезку превью
fields – список ключей, которые будут включены в ответ
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
PathNotFoundError – ресурс не был найден на Диске
ForbiddenError – у приложения не хватает прав, чтобы выполнить данный запрос
- Результат:
- async get_public_resources(**kwargs) AsyncPublicResourcesListObject [исходный код]
Получает список публичных ресурсов.
- Параметры:
offset – отступ от начала списка
limit – максимальное число элементов в списке
preview_size – размер превью файла
preview_crop – bool, обрезает превью согласно размеру, заданному в preview_size
type – фильтр по типу ресурса («file» или «dir»)
fields – список ключей, которые будут включены в ответ
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
ForbiddenError – у приложения не хватает прав, чтобы выполнить данный запрос
- Результат:
- async get_public_type(public_key: str, /, **kwargs) str [исходный код]
Получает тип публичного ресурса.
- Параметры:
public_key – публичный ключ или URL к ресурсу
path – относительный путь к ресурсу внутри публичной папки
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
PathNotFoundError – ресурс не был найден на Диске
ForbiddenError – у приложения не хватает прав, чтобы выполнить данный запрос
- Результат:
«file» или «dir»
- async get_token(code: str, /, **kwargs) TokenObject [исходный код]
Получает новый токен.
- Параметры:
code – код подтверждения
device_id – уникальный идентификатор устройства (между 6 и 50 символами)
code_verifier – str, код верификатора, используемый при авторизации с PKCE
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
BadVerificationCodeError – неправильный формат кода подтверждения
InvalidGrantError – неправильный или истекший код
InvalidClientError – неправильный идентификатор или пароль приложения
BadRequestError – неправильные параметры запроса
- Результат:
- async get_token_from_device_code(device_code: str, /, **kwargs) TokenObject [исходный код]
Получает новый токен с помощью кода устройства (device_code), полученногос помощью
AsyncClient.get_device_code()
- Параметры:
code – код подтверждения
device_id – уникальный идентификатор устройства (между 6 и 50 символами)
device_name – имя устройства, не более 100 символов
code_verifier – str, код верификатора, используемый при авторизации с PKCE
timeout – float или tuple, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
AuthorizationPendingError – пользователь ещё не авторизовал приложение
BadVerificationCodeError – неправильный формат
device_code
InvalidGrantError – неправильный или истекший
device_code
InvalidClientError – неправильный идентификатор или пароль приложения
BadRequestError – неправильные параметры запроса
- Результат:
- async get_trash_meta(path: str, /, **kwargs) AsyncTrashResourceObject [исходный код]
Получает мета-информацию о ресурсе корзины.
- Параметры:
path – путь к ресурсу корзины
limit – количество ресурсов в папке, которые будут включены в ответ
offset – количество ресурсов в папке, которые будут пропущены
preview_size – размер превью файла
preview_crop – bool, обрезает превью согласно размеру, заданному в preview_size
sort – str, поле использумое для сортировки вложенных ресурсов
fields – список ключей, которые будут включены в ответ
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
PathNotFoundError – ресурс не был найден на Диске
ForbiddenError – у приложения не хватает прав, чтобы выполнить данный запрос
- Результат:
- async get_trash_type(path: str, /, **kwargs) str [исходный код]
Получает тип ресурса корзины.
- Параметры:
path – путь к ресурсу корзины
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
PathNotFoundError – ресурс не был найден на Диске
ForbiddenError – у приложения не хватает прав, чтобы выполнить данный запрос
- Результат:
«file» или «dir»
- async get_type(path: str, /, **kwargs) str [исходный код]
Получает тип ресурса
- Параметры:
path – путь к ресурсу
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
PathNotFoundError – ресурс не был найден на Диске
ForbiddenError – у приложения не хватает прав, чтобы выполнить данный запрос
- Результат:
«file» или «dir»
- async get_upload_link(path: str, /, **kwargs) str [исходный код]
Получает ссылку для загрузки файла на диск при помощи PUT запроса.
- Параметры:
path – путь назначения
overwrite – bool, определяет, перезаписывать путь назначения или нет
fields – список ключей, которые будут включены в ответ
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
ParentNotFoundError – родительская папка не существует
PathExistsError – путь назначения уже существует
ForbiddenError – у приложения не хватает прав, чтобы выполнить данный запрос
ResourceIsLockedError – запрашиваемый ресурс заблокирован другой операцией
InsufficientStorageError – невозможно загрузить файл из-за нехватки места на Диске
UploadTrafficLimitExceededError – достигнут лимит на загрузку файлов
- Результат:
str
- async is_dir(path: str, /, **kwargs) bool [исходный код]
Проверяет, является ли path папкой.
- Параметры:
path – путь к ресурсу
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
ForbiddenError – у приложения не хватает прав, чтобы выполнить данный запрос
- Результат:
True, если path является папкой, False, в остальных случаях (даже если ресурс не существует)
- async is_file(path: str, /, **kwargs) bool [исходный код]
Проверяет, является ли path файлом.
- Параметры:
path – путь к ресурсу
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
ForbiddenError – у приложения не хватает прав, чтобы выполнить данный запрос
- Результат:
True, если path является файлом, False, в остальных случаях (даже если ресурс не существует)
- async is_public_dir(public_key: str, /, **kwargs) bool [исходный код]
Проверяет, является ли public_key публичной папкой.
- Параметры:
public_key – публичный ключ или URL к ресурсу
path – относительный путь к ресурсу внутри публичной папки
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
ForbiddenError – у приложения не хватает прав, чтобы выполнить данный запрос
- Результат:
True, если public_key является папкой, False, в остальных случаях (даже если ресурс не существует)
- async is_public_file(public_key: str, /, **kwargs) bool [исходный код]
Проверяет, является ли public_key публичным файлом.
- Параметры:
public_key – публичный ключ или URL к ресурсу
path – относительный путь к ресурсу внутри публичной папки
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
ForbiddenError – у приложения не хватает прав, чтобы выполнить данный запрос
- Результат:
True, если public_key является файлом, False, в остальных случаях (даже если ресурс не существует)
- async is_trash_dir(path: str, /, **kwargs) bool [исходный код]
Проверяет, является ли path папкой в корзине.
- Параметры:
path – путь к ресурсу корзины
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
ForbiddenError – у приложения не хватает прав, чтобы выполнить данный запрос
- Результат:
True, если path является папкой, False, в остальных случаях (даже если ресурс не существует)
- async is_trash_file(path: str, /, **kwargs) bool [исходный код]
Проверяет, является ли path файлом в корзине.
- Параметры:
path – путь к ресурсу корзины
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
ForbiddenError – у приложения не хватает прав, чтобы выполнить данный запрос
- Результат:
True, если path является папкой, False, в остальных случаях (даже если ресурс не существует)
- async listdir(path: str, /, **kwargs) AsyncGenerator[AsyncResourceObject, None] [исходный код]
Получает содержимое path.
- Параметры:
path – путь к папке
limit – количество ресурсов в папке, которые будут включены в ответ
offset – количество ресурсов в папке, которые будут пропущены
preview_size – размер превью файла
preview_crop – bool, обрезает превью согласно размеру, заданному в preview_size
fields – список ключей, которые будут включены в ответ
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
PathNotFoundError – ресурс не был найден на Диске
ForbiddenError – у приложения не хватает прав, чтобы выполнить данный запрос
WrongResourceTypeError – указанный ресурс не является папкой
- Результат:
асинхронный генератор
AsyncResourceObject
- async mkdir(path: str, /, **kwargs) AsyncResourceLinkObject [исходный код]
Создаёт новую папку.
- Параметры:
path – путь к папке, подлежащей созданию
fields – список ключей, которые будут включены в ответ
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
ParentNotFoundError – родительская папка не существует
DirectoryExistsError – путь назначения уже существует
InsufficientStorageError – невозможно создать папку из-за нехватки места на Диске
ForbiddenError – у приложения не хватает прав, чтобы выполнить данный запрос
ResourceIsLockedError – запрашиваемый ресурс заблокирован другой операцией
- Результат:
- async move(src_path: str, dst_path: str, /, **kwargs) AsyncOperationLinkObject | AsyncResourceLinkObject [исходный код]
Перемещает src_path в dst_path.
- Параметры:
src_path – исходный путь, подлежащий перемещению
dst_path – путь назначения
overwrite – bool, определяет, перезаписывать путь назначения или нет
force_async – заставляет выполнять операцию асинхронно
fields – список ключей, которые будут включены в ответ
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
PathNotFoundError – ресурс не был найден на Диске
PathExistsError – путь назначения уже существует
ForbiddenError – у приложения не хватает прав, чтобы выполнить данный запрос
ResourceIsLockedError – запрашиваемый ресурс заблокирован другой операцией
- Результат:
- async patch(path: str, properties: dict, /, **kwargs) AsyncResourceObject [исходный код]
Обновляет пользовательские свойства ресурса.
- Параметры:
path – путь к ресурсу
properties – dict, новые пользовательские свойства ресурса
fields – список ключей, которые будут включены в ответ
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
PathNotFoundError – ресурс не был найден на Диске
ForbiddenError – у приложения не хватает прав, чтобы выполнить данный запрос
ResourceIsLockedError – запрашиваемый ресурс заблокирован другой операцией
- Результат:
- async public_exists(public_key: str, /, **kwargs) bool [исходный код]
Проверяет, существует ли публичный ресурс.
- Параметры:
public_key – публичный ключ или URL к ресурсу
path – относительный путь к ресурсу внутри публичной папки
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
ForbiddenError – у приложения не хватает прав, чтобы выполнить данный запрос
- Результат:
bool
- async public_listdir(public_key: str, /, **kwargs) AsyncGenerator[AsyncPublicResourceObject, None] [исходный код]
Получает содержимое публичной папки.
- Параметры:
public_key – публичный ключ или URL к ресурсу
path – относительный путь к ресурсу в публичной папке. Указывая ключ опубликованной папки через public_key, вы можете запросить содержимое любой вложенной папки.
limit – количество ресурсов в папке, которые будут включены в ответ
offset – количество ресурсов в папке, которые будут пропущены
preview_size – размер превью файла
preview_crop – bool, обрезает превью согласно размеру, заданному в preview_size
fields – список ключей, которые будут включены в ответ
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
PathNotFoundError – ресурс не был найден на Диске
ForbiddenError – у приложения не хватает прав, чтобы выполнить данный запрос
WrongResourceTypeError – указанный ресурс не является папкой
- Результат:
асинхронный генератор
AsyncPublicResourceObject
- async publish(path: str, /, **kwargs) AsyncResourceLinkObject [исходный код]
Делает ресурс публичным.
- Параметры:
path – путь к публикуемому ресурсу
fields – список ключей, которые будут включены в ответ
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
PathNotFoundError – ресурс не был найден на Диске
ForbiddenError – у приложения не хватает прав, чтобы выполнить данный запрос
ResourceIsLockedError – запрашиваемый ресурс заблокирован другой операцией
- Результат:
AsyncResourceLinkObject
, ссылка на ресурс
- async refresh_token(refresh_token: str, /, **kwargs) TokenObject [исходный код]
Обновляет существующий токен.
- Параметры:
refresh_token – refresh-токен, полученный вместе с токеном
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
InvalidGrantError – неправильный или истекший refresh-токен или он не принадлежит этому приложению
InvalidClientError – неправильный идентификатор или пароль приложения
BadRequestError – неправильные параметры запроса
- Результат:
- async remove(path: str, /, **kwargs) AsyncOperationLinkObject | None [исходный код]
Удаляет ресурс.
- Параметры:
path – путь к удаляемому ресурсу
permanently – если True, ресурс будет безвозвратно удалён, иначе ресурс будет перемещён в корзину
md5 – str, MD5 хэш файла, подлежащего удалению
force_async – заставляет выполнять операцию асинхронно
fields – список ключей, которые будут включены в ответ
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
PathNotFoundError – ресурс не был найден на Диске
ForbiddenError – у приложения не хватает прав, чтобы выполнить данный запрос
BadRequestError – проверка MD5 доступна только для файлов
ResourceIsLockedError – запрашиваемый ресурс заблокирован другой операцией
- Результат:
AsyncOperationLinkObject
, если операция выполняется асинхронно, иначе None
- async remove_trash(path: str, /, **kwargs) AsyncOperationLinkObject | None [исходный код]
Удаляет ресурс корзины.
- Параметры:
path – путь к ресурсу корзины, подлежащий удалению
force_async – заставляет выполнять операцию асинхронно
fields – список ключей, которые будут включены в ответ
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
PathNotFoundError – ресурс не был найден на Диске
ForbiddenError – у приложения не хватает прав, чтобы выполнить данный запрос
ResourceIsLockedError – запрашиваемый ресурс заблокирован другой операцией
- Результат:
AsyncOperationLinkObject
, если операция выполняется асинхронно, иначе None
- async rename(src_path: str, new_name: str, /, **kwargs) AsyncResourceLinkObject | AsyncOperationLinkObject [исходный код]
Переименовывает src_path в new_name. Делает то же самое, что и move(), за исключением того, что меняет только имя файла.
- Параметры:
src_path – исходный путь, подлежащий перемещению
new_name – новое имя файла, в которое следует переименовать ресурс
overwrite – bool, определяет, перезаписывать путь назначения или нет
force_async – заставляет выполнять операцию асинхронно
fields – список ключей, которые будут включены в ответ
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
PathNotFoundError – ресурс не был найден на Диске
PathExistsError – путь назначения уже существует
ForbiddenError – у приложения не хватает прав, чтобы выполнить данный запрос
ResourceIsLockedError – запрашиваемый ресурс заблокирован другой операцией
ValueError – new_name не является допустимым именем файла
- Результат:
- async restore_trash(path: str, dst_path: str | None = None, /, **kwargs) AsyncResourceLinkObject | AsyncOperationLinkObject [исходный код]
Восстанавливает ресурс корзины. Возвращает ссылку на новый ресурс или ссылку на асинхронную операцию.
- Параметры:
path – путь к восстанавливаему ресурсу
dst_path – путь назначения
overwrite – bool, определяет может ли путь назначения быть перезаписан
force_async – заставляет выполнять операцию асинхронно
fields – список ключей, которые будут включены в ответ
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
PathNotFoundError – ресурс не был найден на Диске
PathExistsError – путь назначения уже существует
ForbiddenError – у приложения не хватает прав, чтобы выполнить данный запрос
ResourceIsLockedError – запрашиваемый ресурс заблокирован другой операцией
- Результат:
- async revoke_token(token: str | None = None, /, **kwargs) TokenRevokeStatusObject [исходный код]
Отзывает токен.
- Параметры:
token – токен, подлежащий отзыву, то же самое, что self.token, если None
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
InvalidGrantError – указанный токен не принадлежит данному приложению
InvalidClientError – неправильный идентификатор или пароль приложения
UnsupportedTokenTypeError – не удалось отозвать токен, потому что у него нет
device_id
BadRequestError – неправильные параметры запроса
- Результат:
- async save_to_disk(public_key: str, /, **kwargs) AsyncResourceLinkObject | AsyncOperationLinkObject [исходный код]
Сохраняет публичный ресурс на диск. Возвращает ссылку на операцию, если сохранение выполняется асинхронно, или возвращает ссылку на ресурс.
- Параметры:
public_key – публичный ключ или URL к ресурсу
name – имя файла/папки, под которым будет сохранён ресурс
path – путь к копируемому ресурсу в публичной папке
save_path – путь к папке назначения (загрузки по умолчанию)
force_async – заставляет выполнять операцию асинхронно
fields – список ключей, которые будут включены в ответ
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
PathNotFoundError – ресурс не был найден на Диске
ForbiddenError – у приложения не хватает прав, чтобы выполнить данный запрос
ResourceIsLockedError – запрашиваемый ресурс заблокирован другой операцией
InsufficientStorageError – невозможно загрузить файл из-за нехватки места на Диске
UploadTrafficLimitExceededError – достигнут лимит на загрузку файлов
- Результат:
- async trash_exists(path: str, /, **kwargs) bool [исходный код]
Проверяет, существует ли path в корзине.
- Параметры:
path – путь к ресурсу корзины
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
ForbiddenError – у приложения не хватает прав, чтобы выполнить данный запрос
- Результат:
bool
- async trash_listdir(path: str, /, **kwargs) AsyncGenerator[AsyncTrashResourceObject, None] [исходный код]
Получает содержимое папки в корзине.
- Параметры:
path – путь к папке в корзине
limit – количество ресурсов в папке, которые будут включены в ответ
offset – количество ресурсов в папке, которые будут пропущены
preview_size – размер превью файла
preview_crop – bool, обрезает превью согласно размеру, заданному в preview_size
fields – список ключей, которые будут включены в ответ
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
PathNotFoundError – ресурс не был найден на Диске
ForbiddenError – у приложения не хватает прав, чтобы выполнить данный запрос
WrongResourceTypeError – указанный ресурс не является папкой
- Результат:
асинхронный генератор
AsyncTrashResourceObject
- async unpublish(path: str, /, **kwargs) AsyncResourceLinkObject [исходный код]
Делает публичный ресурс приватным.
- Параметры:
path – путь к ресурсу, подлежащему депубликации
fields – список ключей, которые будут включены в ответ
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
PathNotFoundError – ресурс не был найден на Диске
ForbiddenError – у приложения не хватает прав, чтобы выполнить данный запрос
ResourceIsLockedError – запрашиваемый ресурс заблокирован другой операцией
- Результат:
- async upload(path_or_file: str | bytes | BinaryIO | AsyncFileLike | Callable[[], AsyncIterator[bytes]], dst_path: str, /, **kwargs) AsyncResourceLinkObject [исходный код]
Загружает файл на диск.
- Параметры:
path_or_file – путь к файлу, файл-подобный объект или функция, возвращающая асинхронный генератор для загрузки
dst_path – путь назначения
overwrite – если True, путь назначения может быть перезаписан, иначе будет вызвана ошибка
fields – список ключей, которые будут включены в ответ
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
ParentNotFoundError – родительская папка не существует
PathExistsError – путь назначения уже существует
InsufficientStorageError – невозможно загрузить файл из-за нехватки места на Диске
ForbiddenError – у приложения не хватает прав, чтобы выполнить данный запрос
ResourceIsLockedError – запрашиваемый ресурс заблокирован другой операцией
UploadTrafficLimitExceededError – достигнут лимит на загрузку файлов
- Результат:
AsyncResourceLinkObject
, ссылка на загруженный ресурс
- async upload_by_link(file_or_path: str | bytes | BinaryIO | AsyncFileLike | Callable[[], AsyncIterator[bytes]], link: str, /, **kwargs) None [исходный код]
Загружает файл на диск по уже полученной ссылке.
- Параметры:
file_or_path – путь к файлу, файл-подобный объект или функция, возвращающая асинхронный генератор для загрузки
link – ссылка для загрузки файла
overwrite – если True, путь назначения может быть перезаписан, иначе будет вызвана ошибка
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
InsufficientStorageError – невозможно загрузить файл из-за нехватки места на Диске
- async upload_url(url: str, path: str, /, **kwargs) AsyncOperationLinkObject [исходный код]
Загружает файл на диск по URL.
- Параметры:
url – исходный URL
path – путь назначения
disable_redirects – bool, запретить делать перенаправления
fields – список ключей, которые будут включены в ответ
timeout – float, tuple или None, таймаут запроса
headers – dict или None, дополнительные заголовки запроса
n_retries – int, максимальное число повторных попыток запроса
retry_interval – задержка между повторными попытками в секундах
- Исключение:
ParentNotFoundError – родительская папка не существует
PathExistsError – путь назначения уже существует
InsufficientStorageError – невозможно загрузить файл из-за нехватки места на Диске
ForbiddenError – у приложения не хватает прав, чтобы выполнить данный запрос
ResourceIsLockedError – запрашиваемый ресурс заблокирован другой операцией
UploadTrafficLimitExceededError – достигнут лимит на загрузку файлов
- Результат:
AsyncOperationLinkObject
, ссылка на асинхронную операцию
- yadisk.AsyncYaDisk
alias of
AsyncClient