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.5.tar.gz (9.9 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.5-py3-none-any.whl (10.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: nc_api-0.2.5.tar.gz
  • Upload date:
  • Size: 9.9 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.5.tar.gz
Algorithm Hash digest
SHA256 94bffaa442f3fb18495b799f547ae46ae84d84e7132c90706e054db67505e183
MD5 07f6eed32d9d23e35fc91e920bb90dac
BLAKE2b-256 ff7066ceb4a2bfed9867b428c1b5245d6010b91ab259b9e1185b464224712b45

See more details on using hashes here.

File details

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

File metadata

  • Download URL: nc_api-0.2.5-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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 c3994953109587c1b75be06fb2ef456b364f64d2559580a9d922de22670db058
MD5 37855ce688d41c859056c051c4d1a12a
BLAKE2b-256 8d9f61718a5ded6e7170c7b0f5ef1601e5b1ad36cd513add38e2076ae9193fc0

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