Sign inSign up

procube/webdav-server

By procube

Updated over 1 year ago

Image
0

330

procube/webdav-server repository overview

webdav-server

WebDAVを用いてMongoDBにファイル転送を行うことができます。

動作確認

要件

dockerが導入されていること。

環境構築

testフォルダに格納されているdocker-compose.ymlを用いてテスト環境を構築することができます。

docker compose -f test/docker-compose.yml up -d

を実行することで、以下のコンテナが建てられます。

  • mongo: MongoDBを用いたファイルサーバー
  • webdav-server: npm-WebDAV-Serverパッケージを用いたWebDAVサーバー
  • guacamole他: guacamole関連の各種コンテナ
  • chrome: 動作確認を行うためのChromeコンテナ
テスト方法(手動)

コンテナの起動が完了したら、https://localhost:443 にアクセスしてguacamoleログイン画面からログインし、ubuntuデスクトップからGoogle ChromeBashコンソールを開き /mnt ディレクトリ配下に対する操作を行います。 (詳しくは、Backlog NSAG-26 を参照)

テスト方法(自動)
方法1

GitHubにソースをpushすると、GitHub Actions を用いて、テストが自動実行されます。

方法2

GitHub Actions ワークフローを修正したときなどpush前に自動テストを実行したい場合は、actライブラリを使うことで、ソースをpushしたときとほぼ同様の実行確認ができます。無駄な(失敗)プッシュを避けるためにも有効です。

  1. actをインストールする
    例:
    $ cd ${docker-webdav-serverディレクトリ}
    $ curl -s https://raw.githubusercontent.com/nektos/act/master/install.sh | sudo bash
    
  2. ワークフロー確認(自動テストのワークフローの存在を確認)
    $ ./bin/act -l
    
  3. ワークフロー実行(現在は自動テストのワークフローのみのため、詳細な指定なし。デフォルトはpushイベントが発生したとして実行される)
    $ ./bin/act
    
方法3

ローカル環境で自動テストのみを実行することも可能です。(UTでサーバコンテナにはアクセスしない)

  1. docker-webdav-serverのソースディレクトリに移動して、unittestを実行する
    $ cd ${docker-webdav-serverディレクトリ}
    $ npm run unittest
    
  2. tsに対するjsファイルが生成されるので、不要なら削除する
テストファイル

chromeのコンテナの /tmp/webdav-test-files/data ディレクトリ配下にテストファイルをコピーしています。 chromeからファイル転送のテストを行いたい場合はここのファイルを利用することができます。

環境変数

docker-compose.ymlのenvironmentで環境変数を設定することができます。

  • DATABASE_URL: MongoDBへの接続URLです。
  • MONGO_INITDB_ROOT_USERNAME: MongoDBに接続する際のユーザーネームです。(必須)
  • MONGO_INITDB_ROOT_PASSWORD: MongoDBに接続する際のパスワードです。(必須)
  • WEBDAV_SERVER_PORT: WebDAVサーバのポート番号です。デフォルトは 2000
  • WEBDAV_PUBLIC_VOLUME_USERNAME: davfs ボリューム public の username です。デフォルトは public
  • FILESERVER_AV: ClamAV によるスキャンを行うか否かを指定します。デフォルトは false(しない)
  • SCAN_SIZE_LIMIT: ClamAV によるスキャンを行うことができるファイルサイズの上限値です。デフォルトは 4294967296
  • UPLOAD_SIZE_LIMIT: アップロードできるファイルサイズの上限値です。デフォルトは 1024 * 1024 * 1024 * 10
  • UPLOAD_TOTAL_SIZE_LIMIT: アップロードできる総ファイルサイズの上限値です。デフォルトは 1024 * 1024 * 1024 * 50
  • WEBDAV_CREATE_FILE_TIMEOUT: 新規ファイルのアップロードが中断されたときに残る一時データを一定時間経過後に削除するための、削除までの時間を指定します(単位:秒、デフォルト:server.options.lockTimeout または 3600)。一時データが残っている間はロックされ同名で新規作成できません。

Tag summary

Content type

Image

Digest

sha256:e4edb76fc

Size

431.9 MB

Last updated

over 1 year ago

docker pull procube/webdav-server