mirror of https://github.com/kubernetes/kops.git
				
				
				
			
		
			
				
	
	
		
			53 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
#!/bin/bash -e
 | 
						|
 | 
						|
PUBLIC=1
 | 
						|
 | 
						|
if [[ "$1" == "--private" ]]; then
 | 
						|
  PUBLIC=
 | 
						|
  shift
 | 
						|
fi
 | 
						|
 | 
						|
SRC=$1
 | 
						|
DEST=$2
 | 
						|
 | 
						|
if [[ -z "${SRC}" ]]; then
 | 
						|
  echo "syntax: $0 [--private] <src> <dest>"
 | 
						|
  exit 1
 | 
						|
fi
 | 
						|
 | 
						|
if [[ -z "${DEST}" ]]; then
 | 
						|
  echo "syntax: $0 [--private] <src> <dest>"
 | 
						|
  exit 1
 | 
						|
fi
 | 
						|
 | 
						|
if [[ "${DEST:0:5}" == "s3://" ]]; then
 | 
						|
  aws s3 sync ${PUBLIC:+--acl public-read} ${SRC} ${DEST}
 | 
						|
  exit 0
 | 
						|
fi
 | 
						|
 | 
						|
if [[ "${DEST:0:5}" == "gs://" ]]; then
 | 
						|
  bucket=$(echo "${DEST}" | cut -d/ -f1-3)
 | 
						|
  acl_flag="${PUBLIC:+-a public-read}"
 | 
						|
  # GCS buckets with UBLA enabled error on attempts to set ACLs
 | 
						|
  # ref: https://cloud.google.com/storage/docs/uniform-bucket-level-access#enabled
 | 
						|
  if gsutil ubla get "${bucket}" | grep -q "Enabled: True" 2>/dev/null; then
 | 
						|
    acl_flag=""
 | 
						|
  fi
 | 
						|
  gsutil -h "Cache-Control:private,max-age=0" rsync -r ${acl_flag} ${SRC} ${DEST}
 | 
						|
  exit 0
 | 
						|
fi
 | 
						|
 | 
						|
if [[ "${DEST:0:6}" == "oss://" ]]; then
 | 
						|
	aliyun oss cp ${PUBLIC:+--acl public-read} -r -f --include "*" ${SRC}/ ${DEST}
 | 
						|
  exit 0
 | 
						|
fi
 | 
						|
 | 
						|
if [[ "${DEST:0:5}" == "do://" ]]; then
 | 
						|
  DO_BUCKET=`echo "${DEST}" | cut -c 6-`
 | 
						|
  s3cmd put "*" ${SRC}/ s3://$DO_BUCKET --recursive ${PUBLIC:+--acl-public}
 | 
						|
  exit 0
 | 
						|
fi
 | 
						|
 | 
						|
echo "Unsupported destination - supports s3://, gs:// and oss:// urls: ${DEST}"
 | 
						|
exit 1
 |