Cluster · разработчикам

File

Готовый или загружаемый файл Cluster. Методы с побочным эффектом выполняются через ядро.

Все методы SDK · Типы и ошибки

Получение объекта

file = app.files("file-id")

file ссылается на существующий готовый файл текущего экземпляра.

__init__

Создаёт File. Обычный способ получения объекта показан выше; прямой конструктор не выполняет сетевые запросы.

def __init__(files: Files, id: str, data: FileInfo | None = None) -> None: ...

Аргументы

Результат

None. Создаёт File. Обычный способ получения объекта показан выше; прямой конструктор не выполняет сетевые запросы.

Права

Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.

Ошибки

Пример

# Обычный способ получения объекта:
file = app.files("file-id")

active

Проверяет, что объект ещё не отмечен удалённым. Состояние сервера не загружает.

def active() -> None: ...

Аргументы

Нет.

Результат

None. Проверяет, что объект ещё не отмечен удалённым. Состояние сервера не загружает.

Права

Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.

Ошибки

Пример

result = file.active()

load

Получает актуальные метаданные и revision файла.

async def load() -> Self: ...

Аргументы

Нет.

Результат

Self. Тот же объект после успешной операции. Получает актуальные метаданные и revision файла.

Права

Нужны files.read. Для чужих файлов своего юзербота дополнительно files.full либо отдельное разрешение конфигурационного файла на чтение.

Ошибки

Пример

result = await file.load()

edit

Меняет метаданные с проверкой revision; при отсутствии ревизии сначала загружает файл.

async def edit(**values: JSON) -> Self: ...

Аргументы

Результат

Self. Тот же объект после успешной операции. Меняет метаданные с проверкой revision; при отсутствии ревизии сначала загружает файл.

Права

files.write; если revision ещё не известна, предварительный load() дополнительно требует files.read. Для чужого раздела требуется files.full.

Ошибки

Пример

result = await file.edit(filename="renamed.txt")

rename

Меняет подпись filename с проверкой ревизии.

async def rename(filename: str) -> Self: ...

Аргументы

Результат

Self. Тот же объект после успешной операции. Меняет подпись filename с проверкой ревизии.

Права

files.write; если revision ещё не известна, предварительный load() дополнительно требует files.read. Для чужого раздела требуется files.full.

Ошибки

Пример

result = await file.rename("note.txt")

retain

Меняет срок хранения с проверкой ревизии. None снимает срок.

async def retain(ttl: int | None = None) -> Self: ...

Аргументы

Результат

Self. Тот же объект после успешной операции. Меняет срок хранения с проверкой ревизии. None снимает срок.

Права

files.write; если revision ещё не известна, предварительный load() дополнительно требует files.read. Для чужого раздела требуется files.full.

Ошибки

Пример

result = await file.retain()

chunks

Читает файл порциями; целиком в память его не собирает.

async def chunks(size: int = 65536) -> AsyncIterator[bytes]: ...

Аргументы

Результат

AsyncIterator[bytes]. Читает файл порциями; целиком в память его не собирает.

Права

Нужны files.read. Для чужих файлов своего юзербота дополнительно files.full либо отдельное разрешение конфигурационного файла на чтение.

Ошибки

Пример

async for value in file.chunks():
    break

read_at

Читает один участок с проверкой границ и корректности смещения в ответе.

async def read_at(offset: int = 0, size: int = 65536) -> bytes: ...

Аргументы

Результат

bytes. Читает один участок с проверкой границ и корректности смещения в ответе.

Права

Нужны files.read. Для чужих файлов своего юзербота дополнительно files.full либо отдельное разрешение конфигурационного файла на чтение.

Ошибки

Пример

result = await file.read_at()

read

Получает содержимое целиком. maximum является неотрицательным целым; размер сверяется до чтения и после каждой порции.

async def read(maximum: int = 1048576) -> bytes: ...

Аргументы

Результат

bytes. Получает содержимое целиком, предварительно сверяя размер с maximum.

Права

Нужны files.read. Для чужих файлов своего юзербота дополнительно files.full либо отдельное разрешение конфигурационного файла на чтение.

Ошибки

Пример

content = await file.read(maximum=1048576)

text

Читает файл в пределах maximum и декодирует выбранной кодировкой.

async def text(encoding: str = 'utf-8', maximum: float | None = 1048576) -> str: ...

Аргументы

Результат

str. Читает файл в пределах maximum и декодирует выбранной кодировкой.

Права

Нужны files.read. Для чужих файлов своего юзербота дополнительно files.full либо отдельное разрешение конфигурационного файла на чтение.

Ошибки

Пример

result = await file.text()

json

Читает файл как UTF-8 и разбирает JSON.

async def json(maximum: float | None = 1048576) -> JSON: ...

Аргументы

Результат

JSON. Читает файл как UTF-8 и разбирает JSON.

Права

Нужны files.read. Для чужих файлов своего юзербота дополнительно files.full либо отдельное разрешение конфигурационного файла на чтение.

Ошибки

Пример

result = await file.json()

copy

Потоково копирует файл в новый с выбранными именем и сроком, проверяя размер и SHA256.

async def copy(filename: str | None = None, ttl: int | None = None) -> File: ...

Аргументы

Результат

File. Потоково копирует файл в новый с выбранными именем и сроком, проверяя размер и SHA256.

Права

Нужны files.read + files.write. Для чужих файлов своего юзербота дополнительно files.full либо отдельное разрешение конфигурационного файла на чтение.

Ошибки

Пример

result = await file.copy()

delete

Удаляет файл через ядро и отмечает локальный объект удалённым.

async def delete() -> bool: ...

Аргументы

Нет.

Результат

bool. Удаляет файл через ядро и отмечает локальный объект удалённым.

Права

Нужны files.write. Для чужих файлов своего юзербота дополнительно files.full либо отдельное разрешение конфигурационного файла на чтение.

Ошибки

Пример

result = await file.delete()

__aenter__

Вход в async with. Возвращает этот объект без дополнительной загрузки.

async def __aenter__() -> Self: ...

Аргументы

Нет.

Результат

Self. Тот же объект после успешной операции. Вход в async with. Возвращает этот объект без дополнительной загрузки.

Права

Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.

Ошибки

Пример

async with file as active:
    pass

__aexit__

Выход из async with. Удаляет файл даже при исключении в блоке. Ошибка очистки не заменяет исходную ошибку. Исключения блока не подавляются.

async def __aexit__(kind: type[BaseException] | None, error: BaseException | None, traceback: TracebackType | None) -> None: ...

Аргументы

Результат

None. Выход из async with. Удаляет файл даже при исключении в блоке. Ошибка очистки не заменяет исходную ошибку. Исключения блока не подавляются.

Права

Нужны files.write. Для чужих файлов своего юзербота дополнительно files.full либо отдельное разрешение конфигурационного файла на чтение.

Ошибки

Пример

async with file as active:
    pass