コマンドラインからownCloud上のフォルダーを共有設定する方法について
ownCloud を利用していてフォルダー共有をまとめて実施したい事があると思います。
Web から設定するのは非常に大変ですのでコマンドラインからまとめて設定できると便利ですよね。
ownCloudには共有設定用APIがあるので、これをcurlコマンドでつつけばまとめて設定できます。
細かい話は、ここに書いてあったり、
API一覧 | ownCloud.jp
http://owncloud.jp/solutions/platform/api
ここに書いてあったりするわけですが、
OCS Share API — ownCloud Developer Manual 8.2 documentation
https://doc.owncloud.org/server/8.2/developer_manual/core/ocs-share-api.html
実際に使ってみるというのも良いことなのでやってみましょう。
##1. 共有一覧取得
まず、共有されている一覧を取得します。GETなので、簡単です。
curl "https://<owncloud_host>/ocs/v1.php/apps/files_sharing/api/v1/shares" -k -u <ID>:<PW>
owncloud_host : ownCloudサーバーを指定します。
ID:ログインIDを指定します。
PW:パスワードを指定します。
##2. パス指定で共有情報取得
1だと全部出てきて面倒な場合は、指定したパスのみの情報を取得することもできます。
これもGETで取得できます。
curl "https://<owncloud_host>/ocs/v1.php/apps/files_sharing/api/v1/shares?path=<DocumentPath>" -k -u <ID>:<PW>
指定するパラメータが一つ増えます。
owncloud_host : ownCloudサーバーを指定します。
ID:ログインIDを指定します。
PW:パスワードを指定します。
DocumentPath:ドキュメントファイル/フォルダーへのパスを指定します。
##3. 共有を設定
共有情報は取得できたので、共有を実際にしてみましょう。
今度はPOSTになります。
curl "https://<owncloud_host>/ocs/v1.php/apps/files_sharing/api/v1/shares" -l -k -u <ID>:<PW> -X POST --data-urlencode "path=<DocumentPath>" --data-urlencode "shareWith=<ShareWith>" --data "shareType=<ShareType>&permissions=<Permission>"
owncloud_host : ownCloudサーバーを指定します。
ID:ログインIDを指定します。
PW:パスワードを指定します。
DocumentPath:ドキュメントファイル/フォルダーへのパスを指定します。
ShareWith:共有するユーザー名もしくは、グループ名
ShareType:ShareWithで共有する対象がユーザー(=0)、グループ(=1)、URL(=3)、クラウド連携(=6)を指定します。
Permission:読み書きする権限。1 = 読み込み; 2 = 更新; 4 = 作成; 8 = 削除; 16 = 再共有; 31 = 全て (デフォルト: 31, URL共有時: 1)
その他、URL共有時にのみ使えるオプションとしては、
publicUpload:アップロード許可(true/false)
password:パスワード文字列
を指定することができます。
ファイル、フォルダー名、ユーザー名、グループ名は、UTF-8で送れば日本語もOKです。
curlのオプション --data-urlencode でデータをPOSTしてください。