星期五, 3月 02, 2018

ngrok + NextCloud + WebDAV + cURL

過去常在用 SCP + bakop.com 做為沒有圖形介面、沒有 VPN 時的抓檔來源,但畢竟是外部資源,用得不太安心。雖然以前也對 OwnCloud 下過功夫研究,但苦於必須有圖形介面瀏覽器限制,這次終於有突破:
  • 檔案分享-NextCloud
  • 指令存取-WebDAV + cURL
  • 內網外露-ngrok
其實公司早就在推 NextCloud,但並非網管,我一直試不成功。這次差別是我自己在內網用 docker 開了有絕對管理權限的一台新的,才知原來整合 LDAP 之後,各使用者有個 UUID 代表 UserName,並不等於登入帳號,所以取檔案大約像這樣:
  • curl -u 'user:pass' -O http://nc.acme.com/remote.php/dav/files/UUID/path/to/file
[2018/03/14]
原來 UUID 還是可以改的,不至於太難用,可參考 Internal Username 這段。

[2018/03/30]
ngrok 取來的主機名稱可以保留蠻久的,直到最近一次斷電。因為重新連上一定會換名字,每次都要進 config/config.php 改 trusted_domain 也實在麻煩,尤其是 docker 裡面連 vi 都沒有。一個修改訣竅是:
  • 'trusted_domains' =>
  • array (
  • 0 => '*.ngrok.io',
  • ),
另外提到在 docker 裡面不容易編輯 config.php,可以運用 occ 這個工具:
  • ./occ config:system:set 0 --value=*.ngrok.io
  • ./occ config:system:get
[2018/04/04]
單開一組帳密給外人使用似乎是管理者的特權,那我們一般小老百姓呢?也是可以在自己的管理範圍內開出共享目錄,以 http://nc.acme.com/s/<shareLink> 允許讀寫、不設密碼保護為例,上傳:
  • curl -u '<shareLink>:' -T <fileName> http://nc.acme.com/public.php/webdav/ [--progress-bar -o /dev/null]
下載:
  • curl -u '<shareLink>:' -O http://nc.acme.com/public.php/webdav/<fileName>
查詢目錄內容:
  • curl -u '<shareLink>:' -X PROPFIND http://nc.acme.com/public.php/webdav/ | grep -o '<d:href>[^<]*</d:href>'
[2018/09/06]
共享匿名個別檔案有些不同:
  • curl http://nc.acme.com/s/<shareLink>/download -o <fileName>

沒有留言:

張貼留言