Skip to main content

Nextcloud WebDAV client (files, directories, paths, users)

Project description

Описание проекта

nc_api — простая библиотека для работы с Nextcloud через WebDAV и OCS API: файлы, директории, операции над путями и пользователи. Единая точка входа — NextcloudClient.

Инициализация проекта

Установка

cd /home/odna/python/nc-api-python
/usr/bin/python setup.py sdist bdist_wheel
pip install -U dist/nc_api-0.1.0-py3-none-any.whl

Базовая инициализация клиента

from nc_api import NextcloudClient

# Базовый URL должен указывать на WebDAV-директорию пользователя
BASE = "http://localhost:8088/remote.php/dav/files/admin"
client = NextcloudClient(BASE, "admin", "admin")

Функционал модулей

DirectoryManager

  • directory_exists_check(path: str) -> bool | str: проверка существования директории через WebDAV PROPFIND.

FileManager

  • upload_file(LOCAL_UPLOAD_PATH | FILE, REMOTE_UPLOAD_PATH) -> bool: загрузка файла; при необходимости создаёт каталоги (при наличии directory_manager).
  • download_file(LOCAL_DOWNLOAD_PATH, REMOTE_DOWNLOAD_PATH) -> bool: скачивание файла.
  • get_data_file(REMOTE_FILE_PATH) -> dict | str: метаданные файла через WebDAV PROPFIND (XML).

PathManager

  • rename_path(CURRENT_PATH, NEW_PATH) -> bool: переименование/перемещение ресурса (MOVE); создаёт недостающие каталоги.
  • delete_path(TARGET_PATH) -> bool: удаление файла/директории (DELETE).
  • UploadFolder(LOCAL_FOLDER_PATH, REMOTE_FOLDER_PATH) -> None: рекурсивная загрузка каталога.

UserManager (OCS API)

  • get_users(search=None, limit=None, offset=None) -> list[str] | str: список пользователей.
  • get_user(username=None, user_id=None, name=None) -> dict | str: данные пользователя.

Использование через единую точку входа

from nc_api import NextcloudClient

BASE = "http://localhost:8088/remote.php/dav/files/admin"
client = NextcloudClient(BASE, "admin", "admin")

# Файлы
client.files.upload_file(FILE=b"hello", REMOTE_UPLOAD_PATH="/tmp/hello.txt")
client.files.download_file("./hello.txt", "/tmp/hello.txt")

# Пути
client.paths.rename_path("/tmp/hello.txt", "/tmp/hi.txt")
client.paths.delete_path("/tmp/hi.txt")

# Директории
client.dirs.directory_exists_check("/tmp")

# Пользователи (OCS)
client.users.get_users(limit=10)
client.users.get_user(username="admin")

Примечание: BASE должен указывать на корень WebDAV для конкретного пользователя: http(s)://<host>/remote.php/dav/files/<username>.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nc_api-0.1.0.tar.gz (9.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nc_api-0.1.0-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

File details

Details for the file nc_api-0.1.0.tar.gz.

File metadata

  • Download URL: nc_api-0.1.0.tar.gz
  • Upload date:
  • Size: 9.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for nc_api-0.1.0.tar.gz
Algorithm Hash digest
SHA256 b1728d9c162a2e3620e0eda804748f24670239599fa0dc819dd8a5f4cfa02039
MD5 cc9a461353f997bf1d04bd5f4ccf8da0
BLAKE2b-256 79ffa59d3c18dcaf721c4db931fce3b82a34a157dd3d6e4dec318f9dbbfebb57

See more details on using hashes here.

File details

Details for the file nc_api-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: nc_api-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 10.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for nc_api-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 72eeb44a6017e4e94d2eaaf2b4547cfe03b373f3acb8425c8684239d8dd650ab
MD5 cc6a6068d8714dbb25e7ae8c09d0336f
BLAKE2b-256 bfcd650de7f1f370f15658787db31c8f40a88d9e22902bb216a3949e41027d9d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page