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.2.tar.gz (10.1 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.2-py3-none-any.whl (10.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: nc_api-0.2.2.tar.gz
  • Upload date:
  • Size: 10.1 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.2.tar.gz
Algorithm Hash digest
SHA256 2cb1c41bc1fcc59cde9e27585f0dcc011f7a25fe92e13e1458989705b89dc6b3
MD5 8c4660bf78fd6c672cca17b31dbfbed0
BLAKE2b-256 a4b4a7aa3d028332642a1f2a9e1c3aeb4f68b54b38eac96bf6e9cdbd900403c2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: nc_api-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 10.7 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 c5db5008cc38e7e9b2a750132a6a47852b7bae09edd9c650f860233c84919ac2
MD5 68710e1502641d6b28d12a0da46ccd40
BLAKE2b-256 74f6d3cc2ef8099f000d34fbaf59abf0807181ecb75f61461597c3fa7bc7ca3a

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