c786f75389
* swarm/api: url scheme bzz-list for getting list of files from manifest Replace query parameter list=true for listing all files contained in a swarm manifest with a new URL scheme bzz-list. * swarm: replaace bzzr and bzzi schemes with bzz-raw and bzz-immutable New URI Shemes are added and old ones are deprecated, but not removed. Old Schemes bzzr and bzzi are functional for backward compatibility. * swarm/api: completely remove bzzr and bzzi schemes Remove old schemes in favour of bzz-raw and bzz-immutable. * swarm/api: revert "completely remove bzzr and bzzi schemes" Keep bzzr and bzzi schemes for backward compatibility. At least until 0.3 swarm release.
97 lines
2.0 KiB
Bash
Executable File
97 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# A script to upload random data to a swarm cluster.
|
|
#
|
|
# Example:
|
|
#
|
|
# random-uploads.sh --addr 192.168.33.101:8500 --size 40k --count 1000
|
|
|
|
set -e
|
|
|
|
ROOT="$(cd "$(dirname "$0")/../../.." && pwd)"
|
|
source "${ROOT}/swarm/dev/scripts/util.sh"
|
|
|
|
DEFAULT_ADDR="localhost:8500"
|
|
DEFAULT_UPLOAD_SIZE="40k"
|
|
DEFAULT_UPLOAD_COUNT="1000"
|
|
|
|
usage() {
|
|
cat >&2 <<USAGE
|
|
usage: $0 [options]
|
|
|
|
Upload random data to a Swarm cluster.
|
|
|
|
OPTIONS:
|
|
-a, --addr ADDR Swarm API address [default: ${DEFAULT_ADDR}]
|
|
-s, --size SIZE Individual upload size [default: ${DEFAULT_UPLOAD_SIZE}]
|
|
-c, --count COUNT Number of uploads [default: ${DEFAULT_UPLOAD_COUNT}]
|
|
-h, --help Show this message
|
|
USAGE
|
|
}
|
|
|
|
main() {
|
|
local addr="${DEFAULT_ADDR}"
|
|
local upload_size="${DEFAULT_UPLOAD_SIZE}"
|
|
local upload_count="${DEFAULT_UPLOAD_COUNT}"
|
|
|
|
parse_args "$@"
|
|
|
|
info "uploading ${upload_count} ${upload_size} random files to ${addr}"
|
|
|
|
for i in $(seq 1 ${upload_count}); do
|
|
info "upload ${i} / ${upload_count}:"
|
|
do_random_upload
|
|
echo
|
|
done
|
|
}
|
|
|
|
do_random_upload() {
|
|
curl -fsSL -X POST --data-binary "$(random_data)" "http://${addr}/bzz-raw:/"
|
|
}
|
|
|
|
random_data() {
|
|
dd if=/dev/urandom of=/dev/stdout bs="${upload_size}" count=1 2>/dev/null
|
|
}
|
|
|
|
parse_args() {
|
|
while true; do
|
|
case "$1" in
|
|
-h | --help)
|
|
usage
|
|
exit 0
|
|
;;
|
|
-a | --addr)
|
|
if [[ -z "$2" ]]; then
|
|
fail "--addr flag requires an argument"
|
|
fi
|
|
addr="$2"
|
|
shift 2
|
|
;;
|
|
-s | --size)
|
|
if [[ -z "$2" ]]; then
|
|
fail "--size flag requires an argument"
|
|
fi
|
|
upload_size="$2"
|
|
shift 2
|
|
;;
|
|
-c | --count)
|
|
if [[ -z "$2" ]]; then
|
|
fail "--count flag requires an argument"
|
|
fi
|
|
upload_count="$2"
|
|
shift 2
|
|
;;
|
|
*)
|
|
break
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if [[ $# -ne 0 ]]; then
|
|
usage
|
|
fail "ERROR: invalid arguments: $@"
|
|
fi
|
|
}
|
|
|
|
main "$@"
|