A linux/unix/WSL2 bash script to perform basic file, share and user operations.
Usage: cloud-cli [options]
--config-file file config file (default: ~/.cloud-cli)
--host|-H url cloud host url https://[fqdn|ip][:port]
--user|-U user cloud username (for file operations)
--pass|-P pass cloud password (for file operations)
--admin-user user admin username (for user operations)
--admin-pass pass admin password (for user operations)
--insecure|-I ignore self signed SSL certs
file operations:
--list|-l path list date time size name for path elements
--search|-s text search files for text
--upload|-u file upload file
--download|-d file download file
--delete|-D file delete file
--pipe|-p file pipe file
--move|-m file move file
--copy|-c file copy file
--to|-t file move/copy destination file
--exists|-C path check if file or directory exists
--create-dir dir create directory
--delete-dir dir delete directory
--local-dir|-d dir local directory (default: /tmp)
--local-file|-f file local file
share operations:
--list-shares list all shares
--create-share path create share for specified path
--update-share id update share for specified id
--delete-share id delete share for specified id
--share-type type share type (default: 3)
[0=user|1=group|3=public|6=federated]
--share-perms type share permissions to use on the share (default: 17)
[1=read|2=update|4=create|8=delete|15=r/w|16=share|31=all]
--share-pass text share password to protect the public share
--share-expire text share expire per date or in days [NNN|YYYY-MM-DD]
--share-upload bool share allow public upload to a public shared [0|false|1|true]
--share-note text share a note text
--share-with type share with user or group id
user operations:
--list-users|-L list all users (main fields)
--list-user user list a user (all fields)
--search-user user search for a user(s)
--create-user user create a user
--update-user user update a user
--delete-user user delete a user
--user-pass text user password
--user-name text user display name
--user-email text user email
--user-group text user group(s)
--user-subadmin text user groups which user is subadmin
--user-lang text user language [format: iso 2 character code]
--user-locale text user locale [format: ab_YZ]
--user-quota text user quota [none|default|numGB|numMB|numKB|num]
--user-status text enable/disable user profile [enable|1|disable|0]
misc helpers:
--sort-on|-S text sort --list|--search on a specific output field
[date|size|file][:[asc|desc]] (default: file:ascending)
--yes|-y confirm required operation
[--delete|--delete-dir|--delete-user]
[--copy-file|--move-file] if destination exists
--csv output csv instead of fancy format
[--list|--list-shares|--list-users|--list-user]
--quiet|-q quiet mode
--verbose|-v verbose
--help|-h help
Config file ~/.cloud-cli and remember chmod 600 ~/.cloud-cli
Host="https://yoursite.com:443"
AdminUser="your-admin-username"
AdminPass="your-admin-password"
User="your-username"
Pass="your-password"
#Insecure="--insecure"
Examples (file operations):
$ cloud-cli --list path
$ cloud-cli --upload local-file
$ cloud-cli --download cloud-file --local-dir /tmp
$ cloud-cli --pipe cloud-file | grep text-string
$ cloud-cli --delete cloud-file
$ cloud-cli --copy cloud-file --to copy-of-file
$ cloud-cli --move cloud-file --to move-to-file
$ cloud-cli --exists cloud-file
$ cloud-cli --create-dir cloud-dir
$ cloud-cli --delete-dir cloud-dir
Examples (share operations):
$ cloud-cli --list-shares
$ cloud-cli --create-share path --share-type 3 --share-perms 17
$ cloud-cli --update-share 19 --share-expire 2022-12-31 --share-pass "secret"
$ cloud-cli --delete-share 19
Examples (user operations):
$ cloud-cli --list-users
$ cloud-cli --create-user username --user-pass password [--user-KEY VALUE]
$ cloud-cli --update-user username --user-lang de --user-quota 5GB
$ cloud-cli --update-user username --user-status disable
$ cloud-cli --delete-user username --yes
URL: https://lightaffaire.com/code
Constructive feedback always appreciated.
Iain