Belakangan ini saya membutuhkan upload banyak file dari linux server ke server Nextcloud. Seperti yang banyak diketahui Nextcloud tidak memiliki headless client yang native di linux, tapi WebDav sudah aktif by default. Walaupun pernah saya bahas pada Artikel Otomatisasi Mount Nextcloud 16 dengan Webdav pada Ubuntu, namun itu membutuhkan davfs dan biasanya jika Nextcloud tidak bisa diakes maka akan terkendala masuk ke server yang termounting Nextcloud menggunakan WebDav terkait. Nah saya menemukan cara upload ke server nextcloud menggunakan curl, dimana perintahnya sangat mudah sekali.
Upload Nextcloud Webdav via Curl
Upload Single File
Upload Single File bisa menggunakan curl seperti ini:
curl -T local-filename.pdf -u 'username:password' https://nextcloud.mydomain.tld/remote.php/dav/files/username/remote_filename.pdf
Catatan:
- Opsi -u adalah username dan password dari Nextcloud Anda
- Opsi -T adalah file yang akan diupload
- mydomain.tld adalah domain Anda, silakan disesuaikan
- Pada link setelah remote.php/dav/username silakan sesuaikan dengan username Anda
- Setelah username bisa disesuaikan folder yang akan kita upload, misal folder Documents maka linknya jadi seperti ini: /remote.php/dav/files/nugibiz/Documents/remote_filename.pdf
Upload Multiple Files
Biasanya untuk upload banyak file bisa menggunakan teknik looping, misal hasil dari hasil scanner yang biasanya filenya merupakan .tif.pdf bisa menggunakan perintah:
find . -type f -name \*.pdf -a ! -name \*.tif.pdf | while read x;do filename=$(basename $x); echo $filename;curl -T $x -u 'userscan:password' "https://nextcloud.mydomain.tld/remote.php/dav/files/userscan/Hasil_Scan/$filename";done
Referensi:
- https://docs.nextcloud.com/server/latest/user_manual/files/access_webdav.html
- https://en.wikipedia.org/wiki/WebDAV
- https://justyn.io/til/upload-files-to-nextcloud-using-curl-and-webdav/