github.com/cuiweixie/go-ethereum@v1.8.2-0.20180303084001-66cd41af1e38/swarm/dev/scripts/random-uploads.sh (about) 1 #!/bin/bash 2 # 3 # A script to upload random data to a swarm cluster. 4 # 5 # Example: 6 # 7 # random-uploads.sh --addr 192.168.33.101:8500 --size 40k --count 1000 8 9 set -e 10 11 ROOT="$(cd "$(dirname "$0")/../../.." && pwd)" 12 source "${ROOT}/swarm/dev/scripts/util.sh" 13 14 DEFAULT_ADDR="localhost:8500" 15 DEFAULT_UPLOAD_SIZE="40k" 16 DEFAULT_UPLOAD_COUNT="1000" 17 18 usage() { 19 cat >&2 <<USAGE 20 usage: $0 [options] 21 22 Upload random data to a Swarm cluster. 23 24 OPTIONS: 25 -a, --addr ADDR Swarm API address [default: ${DEFAULT_ADDR}] 26 -s, --size SIZE Individual upload size [default: ${DEFAULT_UPLOAD_SIZE}] 27 -c, --count COUNT Number of uploads [default: ${DEFAULT_UPLOAD_COUNT}] 28 -h, --help Show this message 29 USAGE 30 } 31 32 main() { 33 local addr="${DEFAULT_ADDR}" 34 local upload_size="${DEFAULT_UPLOAD_SIZE}" 35 local upload_count="${DEFAULT_UPLOAD_COUNT}" 36 37 parse_args "$@" 38 39 info "uploading ${upload_count} ${upload_size} random files to ${addr}" 40 41 for i in $(seq 1 ${upload_count}); do 42 info "upload ${i} / ${upload_count}:" 43 do_random_upload 44 echo 45 done 46 } 47 48 do_random_upload() { 49 curl -fsSL -X POST --data-binary "$(random_data)" "http://${addr}/bzz-raw:/" 50 } 51 52 random_data() { 53 dd if=/dev/urandom of=/dev/stdout bs="${upload_size}" count=1 2>/dev/null 54 } 55 56 parse_args() { 57 while true; do 58 case "$1" in 59 -h | --help) 60 usage 61 exit 0 62 ;; 63 -a | --addr) 64 if [[ -z "$2" ]]; then 65 fail "--addr flag requires an argument" 66 fi 67 addr="$2" 68 shift 2 69 ;; 70 -s | --size) 71 if [[ -z "$2" ]]; then 72 fail "--size flag requires an argument" 73 fi 74 upload_size="$2" 75 shift 2 76 ;; 77 -c | --count) 78 if [[ -z "$2" ]]; then 79 fail "--count flag requires an argument" 80 fi 81 upload_count="$2" 82 shift 2 83 ;; 84 *) 85 break 86 ;; 87 esac 88 done 89 90 if [[ $# -ne 0 ]]; then 91 usage 92 fail "ERROR: invalid arguments: $@" 93 fi 94 } 95 96 main "$@"