45 lines
1.1 KiB
Bash
45 lines
1.1 KiB
Bash
|
#!/bin/bash
|
||
|
#
|
||
|
# This script demonstrates basic interaction with tusd form BASH/curl.
|
||
|
# Can also be used as a simple way to test, or extend to see how it
|
||
|
# responds to edge cases or learn the basic tech.
|
||
|
#
|
||
|
|
||
|
# Constants
|
||
|
SERVICE="localhost:1080"
|
||
|
|
||
|
# Environment
|
||
|
set -ex
|
||
|
__FILE__="$(test -L "${0}" && readlink "${0}" || echo "${0}")"
|
||
|
__DIR__="$(cd "$(dirname "${__FILE__}")"; echo $(pwd);)"
|
||
|
|
||
|
# POST requests the upload location
|
||
|
echo "POST '${SERVICE}'"
|
||
|
location=$(curl -s \
|
||
|
--include \
|
||
|
--request POST \
|
||
|
--header 'Content-Range: bytes */26' \
|
||
|
${SERVICE}/files | awk -F': ' '/^Location/ {print $2}')
|
||
|
|
||
|
# needs a `tr -d '\r'` or location will be messed up ----^
|
||
|
# causing tusd connection to hang after it throws a
|
||
|
# 500 - Internal Server Error
|
||
|
|
||
|
# PUT some data
|
||
|
echo "PUT '${SERVICE}${location}'"
|
||
|
curl -s \
|
||
|
--include \
|
||
|
--request PUT \
|
||
|
--header 'Content-Length: 3' \
|
||
|
--header 'Content-Range: bytes 0-2/26' \
|
||
|
--data 'abc' \
|
||
|
${SERVICE}${location}
|
||
|
|
||
|
# check that data with HEAD
|
||
|
echo "HEAD '${SERVICE}${location}'"
|
||
|
curl -s \
|
||
|
--include \
|
||
|
--request HEAD \
|
||
|
${SERVICE}${location}
|
||
|
|