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.1.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.1-py3-none-any.whl (10.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: nc_api-0.2.1.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.1.tar.gz
Algorithm Hash digest
SHA256 598bd4eeaf022d057914524a8bcf3318fac8717340bf67a22171d3de1d5bd57c
MD5 007da89fd950d8461201e72cfe8a8001
BLAKE2b-256 ece08f8370f0a46911b6181397c300c667775ab2a32e0d4e8a5e4ee6a853f142

See more details on using hashes here.

File details

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

File metadata

  • Download URL: nc_api-0.2.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 76757e2b60c567da341090774186f3830aa19304ad4f76d8947b04b0d46429c2
MD5 055a2b6804819f1cb01eb7e4f3a9f62e
BLAKE2b-256 681c2c87027e33b53d82f96977511d2587aae6942d4cec7f4e3aaaffdfe6eadd

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