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

app.files

Хранилище файлов экземпляра и загрузка частями. Путь на сервере не раскрывается.

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

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

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

__init__

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

def __init__(app: App) -> None: ...

Аргументы

Результат

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

Права

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

Ошибки

Пример

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

__call__

Создаёт объект файла по ID. Метаданные можно передать из ранее полученного ответа.

def __call__(id: str, data: FileInfo | None = None) -> File: ...

Аргументы

Результат

File. Создаёт объект файла по ID. Метаданные можно передать из ранее полученного ответа.

Права

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

Ошибки

Пример

result = app.files("object-id")

writer

Создаёт поток загрузки с заранее известным размером и необязательной SHA256.

def writer(filename: str, size: int, sha256: str | None = None, ttl: int | None = None) -> Writer: ...

Аргументы

Результат

Writer. Создаёт поток загрузки с заранее известным размером и необязательной SHA256.

Права

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

Ошибки

Пример

result = app.files.writer("note.txt", 1024)

store

Загружает bytes и возвращает объект готового файла.

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

Аргументы

Результат

File. Загружает bytes и возвращает объект готового файла.

Права

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

Ошибки

Пример

file = await app.files.store("note.txt", b"Hello", ttl=3600)

iter

Перебирает доступные файлы с автоматическим переходом между порциями.

async def iter(limit: int = 100) -> AsyncIterator[File]: ...

Аргументы

Результат

AsyncIterator[File]. Перебирает доступные файлы с автоматическим переходом между порциями.

Права

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

Ошибки

Пример

async for value in app.files.iter():
    break

upload

Загружает bytes частями до 64 KiB, проверяет SHA256 и возвращает метаданные готового файла. При неудаче пытается удалить незавершённый файл.

async def upload(filename: str, data: JSON, ttl: int | None = None) -> FileInfo: ...

Аргументы

Результат

FileInfo. Загружает bytes частями до 64 KiB, проверяет SHA256 и возвращает метаданные готового файла. При неудаче пытается удалить незавершённый файл.

Права

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

Ошибки

Пример

file = await app.files.upload("note.txt", b"Hello", ttl=3600)

chunks

Читает файл порциями до size байт с проверкой смещения и продвижения потока.

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

Аргументы

Результат

AsyncIterator[bytes]. Читает файл порциями до size байт с проверкой смещения и продвижения потока.

Права

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

Ошибки

Пример

async for value in app.files.chunks("object-id"):
    break

delete

Удаляет файл и освобождает занятое им место.

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

Аргументы

Результат

bool. Удаляет файл и освобождает занятое им место.

Права

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

Ошибки

Пример

result = await app.files.delete("object-id")

list

Получает порцию доступных файлов и курсор следующей порции.

async def list(**data: JSON) -> FilesPage: ...

Аргументы

Результат

FilesPage. Получает порцию доступных файлов и курсор следующей порции.

Права

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

Ошибки

Пример

result = await app.files.list(limit=20)