• Janoš Guljaš's avatar
    swarm: bzz-list, bzz-raw and bzz-immutable schemes (#15667) · c786f753
    Janoš Guljaš authored
    * 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.
    c786f753
random-uploads.sh 1.96 KB
#!/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 "$@"