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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nc_api-0.2.6.tar.gz.
File metadata
- Download URL: nc_api-0.2.6.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a8bd75c4b1e24cb91333577f00313a3b71050ef939b91c399bb59c18826b8a96
|
|
| MD5 |
bbc0d870a433add0d218a7a7e16f5b1a
|
|
| BLAKE2b-256 |
12af907cec7f6dc9959393c1a4f2464171e836efc14c01fce04fb4f854c142a0
|
File details
Details for the file nc_api-0.2.6-py3-none-any.whl.
File metadata
- Download URL: nc_api-0.2.6-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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ce9583013cb1d892dc09c6c1b065bce833bd672dbb0b51a505af2101d7b8ac76
|
|
| MD5 |
154980152e1580a0816eec74d45a43a9
|
|
| BLAKE2b-256 |
050fb0f668ff2875f8767c22a59120081aa173569bdd8d86e29c0f56ace0e58b
|