2022年3月18日金曜日

Python WebDAV Client 3を使用してNextcloud上に指定ディレクトリ上のファイルをアップロードする(poetry版)

Python WebDAV Client 3でNextcloudに接続して、指定ディレクトリ上のファイルをアップロードする事が出来ます。

インストール手順

1.poetryのインストール
sudo apt-get update && sudo apt-get -y install python3 python3.8-venv

curl -sSL https://install.python-poetry.org | python3 -

echo 'export PATH="/home/ubuntu/.local/bin:$PATH"' >> ~/.profile

source ~/.profile

2. webdav-client-python-3のインストール
以下のコマンドでwebdav-client-python-3をインストールした仮想環境を作成します
mkdir -p ~/webdav-client-python-3

cd ~/webdav-client-python-3

poetry init -n

poetry add webdavclient3

poetry shell

実行手順

WebDAVクライアントを使用してWebDAV上に指定ディレクトリ上のファイルをアップロードします。以下のサンプルプログラムを保存して、実行します。
※アップロード先にあるコンテンツは削除されます
wdc3_upload_directory.py
from webdav3.client import Client

dav_user='test'
dav_password='testpassword'
dav_server='mynextcloud'
options = {
# rootにインストールしていない場合
#'webdav_hostname': "http://" + dav_server + "/nextcloud/remote.php/dav/files/" + dav_user + "/",
# rootにインストールしてある場合
'webdav_hostname': "http://" + dav_server + "/remote.php/dav/files/" + dav_user + "/",
'webdav_login':    dav_user,
'webdav_password': dav_password
}
client = Client(options)
client.verify = False # To not check SSL certificates (Default = True)

# コンテンツのアップロード
remotepath='サンプル'
localpath='/tmp/Photos' # あらかじめアップロードするファイルなどは準備してください
client.upload_directory(remotepath, localpath)

・実行コマンド
python3 wdc3_upload_directory.py

関連情報

・Python WebDAV Client 3
https://github.com/ezhov-evgeny/webdav-client-python-3

・Nextcloudに関する記事は、以下のまとめを参照してください。
Nextcloudのまとめ

0 件のコメント:

コメントを投稿