Skip to content

odnashestaia/nc-api-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

12 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

ОписаниС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

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>.

About

library for connect to NextCloud by WebDav

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages