-
-
Save fretn/77e5f2f4a1a7e86e33f7ad7c9c1bc3f8 to your computer and use it in GitHub Desktop.
Send files to Nextcloud/Owncloud shared folder using curl
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
############################################################ | |
# | |
# cloudsend.sh | |
# | |
# Uses curl to send files to a shared | |
# Nextcloud/Owncloud folder | |
# | |
# Usage: ./cloudsend.sh <file> <folderLink> | |
# Help: ./cloudsend.sh -h | |
# | |
# Gustavo Arnosti Neves | |
# https://github.com/tavinus | |
# | |
# Get this script to current folder with: | |
# curl -O 'https://gist.githubusercontent.com/tavinus/93bdbc051728748787dc22a58dfe58d8/raw/cloudsend.sh' && chmod +x cloudsend.sh | |
# | |
############################################################ | |
CS_VERSION="0.0.8" | |
CLOUDURL="" | |
FOLDERTOKEN="" | |
PUBSUFFIX="public.php/webdav" | |
HEADER='X-Requested-With: XMLHttpRequest' | |
INSECURE='' | |
# https://cloud.mydomain.net/s/fLDzToZF4MLvG28 | |
# curl -k -T myFile.ext -u "fLDzToZF4MLvG28:" -H 'X-Requested-With: XMLHttpRequest' https://cloud.mydomain.net/public.php/webdav/myFile.ext | |
printVersion() { | |
printf "%s\n" "CloudSender v$CS_VERSION" | |
} | |
initError() { | |
printVersion >&2 | |
printf "%s\n" "Init Error! $1" >&2 | |
printf "%s\n" "Try: $0 --help" >&2 | |
exit 1 | |
} | |
usage() { | |
printVersion | |
printf "\n%s%s\n" "Parameters:" " | |
-h | --help Print this help and exits | |
-V | --version Prints version and exits | |
-k | --insecure Uses curl with -k option (https insecure)" | |
printf "\n%s\n%s\n" "Use:" " $0 <filepath> <folderLink>" | |
printf "\n%s\n%s\n\n" "Example:" " $0 './myfile.txt' 'https://cloud.mydomain.net/s/fLDzToZF4MLvG28'" | |
exit 0 | |
} | |
########################## | |
# Process parameters | |
if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then | |
usage | |
fi | |
if [ "$1" = "-V" ] || [ "$1" = "--version" ]; then | |
printVersion | |
exit 0 | |
fi | |
if [ "$1" = "-k" ] || [ "$1" = "--insecure" ]; then | |
INSECURE=' -k' | |
printf "%s\n" " > Insecure mode ON" | |
shift | |
fi | |
########################## | |
# Validate input | |
FILENAME="$1" | |
TMPURL="${2%/s/*}" | |
CLOUDURL="`echo $TMPURL | sed -e 's#index.php##'`" | |
FOLDERTOKEN="${2##*/s/}" | |
FOLDERTOKEN="`echo $FOLDERTOKEN | sed -e 's#index.php/##'`" | |
if [ ! -f "$FILENAME" ]; then | |
initError "Invalid input file: $FILENAME" | |
fi | |
if [ -z "$CLOUDURL" ]; then | |
initError "Empty URL! Nowhere to send..." | |
fi | |
if [ -z "$FOLDERTOKEN" ]; then | |
initError "Empty Folder Token! Nowhere to send..." | |
fi | |
########################## | |
# Check for curl | |
CURLBIN='/usr/bin/curl' | |
if [ ! -x "$CURLBIN" ]; then | |
CURLBIN="$(which curl 2>/dev/null)" | |
if [ ! -x "$CURLBIN" ]; then | |
initError "No curl found on system!" | |
fi | |
fi | |
########################## | |
# Send file | |
"$CURLBIN"$INSECURE -T "$FILENAME" -u "$FOLDERTOKEN": -H "$HEADER" "$CLOUDURL/$PUBSUFFIX/$FILENAME" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment