webdavのインストール方法について記載します。
Table of Contents
1 webdavをインストールする
- この記事ではhttpsの為にデフォルトのSSL/TLS証明書を使っています。別にSSL/TLS証明書を用意している場合はそちらをお使いください。
- httpを無効にするにはawallを使ってください。
- SSLを利用するのでhttpsやdavsで接続してください。
- Digest認証を使用します。ユーザ名はWEBDAV_USERNAMEの値で、パスワードはWEBDAV_PASSWORDの値です。
#!/bin/sh set -e [ -z "${WEBDAV_USERNAME}" ] && \ WEBDAV_USERNAME=admin [ -z "${WEBDAV_PASSWORD}" ] && \ WEBDAV_PASSWORD=webdav sudo apk add apache2-webdav apache2-utils apache2-ssl sudo mkdir /var/lib/dav sudo mkdir /usr/uploads sudo chown apache:apache /var/lib/dav sudo chown apache:apache /usr/uploads # Create digest password file with expect command. sudo apk add expect expect -c " set timeout -1 spawn sudo htdigest -c /usr/user.passwd DAV-upload ${WEBDAV_USERNAME} expect \"New password: \" send \"${WEBDAV_PASSWORD}\n\" expect \"Re-type new password: \" send \"${WEBDAV_PASSWORD}\n\" expect eof " sudo rc-update add apache2 sudo rc-service apache2 start
2 webdavへアクセスする
davfsのマウントを可能にするdavfs2パッケージをインストールします。
$ sudo sed -e 's;^#http\(.*\)/v3.7/community;http\1/v3.7/community;g' \ -i /etc/apk/repositories $ sudo apk update $ sudo apk add davfs2
サーバのSSL証明書を取得します。
$ WEBDAV_SERVER_FQDN=webdav-server.hiroom2.com $ openssl s_client -showcerts -connect "${WEBDAV_SERVER_FQDN}":443 \ < /dev/null 2> /dev/null | \ openssl x509 -outform PEM | \ sudo tee /etc/davfs2/certs/"${WEBDAV_SERVER_FQDN}".pem
mount -t davfsでマウントします。
$ sudo mount -t davfs https://${WEBDAV_SERVER_FQDN}/uploads /mnt Please enter the username to authenticate with server https://webdav-server.hiroom2.com/uploads or hit enter for none. admin Username: Please enter the password to authenticate user admin with server https://webdav-server.hiroom2.com/uploads or hit enter for none. Password:
/mnt/hello.txtを書き込みます。
$ echo hello | sudo tee /mnt/hello.txt
即座にファイルを反映させる為にアンマウントします。
$ sudo umount /mnt
webdavのディレクトリにファイルが反映されています。
$ sudo cat /usr/uploads/hello.txt hello