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.
  • create_directory(DIRECTORY_PATH: str) -> bool: создание директории через WebDAV MKCOL (201/405 → True; 409 → FileNotFoundError; иные коды → HTTPError).

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")
client.dirs.create_directory("/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.2.4.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.2.4-py3-none-any.whl (10.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: nc_api-0.2.4.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.2.4.tar.gz
Algorithm Hash digest
SHA256 0c76036eb897c824de049a1b7ce8cb2f25cdf86f6442270813e150aec0a733eb
MD5 17a68b626c23fc11d17e69474626fb3c
BLAKE2b-256 3e060550e241bc9e49fece8f437d2553289a1d804f987c9af2ece93d326dbe1f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: nc_api-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 10.4 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.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 eee5a3692f99bf3be5148637bf2135c1177cb5175d9d6b67467d5685258aeb21
MD5 e4cfae60159000e21116457b72e33b73
BLAKE2b-256 4d06eadb174c455a861e62a0337cdcca3316784744251132020b741b07889c24

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