Skip to content

Instantly share code, notes, and snippets.

@alvin2ye
Last active June 27, 2019 09:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alvin2ye/f5da05ad5b0c306288adefb2ce5b98f7 to your computer and use it in GitHub Desktop.
Save alvin2ye/f5da05ad5b0c306288adefb2ce5b98f7 to your computer and use it in GitHub Desktop.
upload_aliyun_sso_private.bash.erb
#!/usr/bin/env bash
export LC_ALL=C
PROJECT_PREFIX=<%= prefix %>
OSS_BUCKET_NAME=<%= bucket %>
LOCALFILE=<%= file %>
OSS_ACCESS_KEY_ID=<%= ak %>
OSS_ACCESS_KEY_SECRET=<%= sk %>
ENDPOINT=<%= endpoint %>
RANDOMSTR=<%= (('a'..'z').to_a + ('0'..'9').to_a).shuffle.first(16).join %>
OBJECT_NAME=$PROJECT_PREFIX/$(date '+%y%m%d')/$RANDOMSTR/$LOCALFILE
RESOURCE="/${OSS_BUCKET_NAME}/${OBJECT_NAME}"
CONTENT_MD5=$(openssl dgst -md5 -binary "${LOCALFILE}" | openssl enc -base64)
CONTENT_TYPE=$(file -ib "${LOCALFILE}" |awk -F ";" '{print $1}')
DATE_VALUE="`TZ=GMT date +'%a, %d %b %Y %H:%M:%S GMT'`"
STRING_TO_SIGN="PUT\n${CONTENT_MD5}\n${CONTENT_TYPE}\n${DATE_VALUE}\n${RESOURCE}"
SIGNATURE=$(echo -e -n $STRING_TO_SIGN | openssl dgst -sha1 -binary -hmac $OSS_ACCESS_KEY_SECRET | openssl enc -base64)
curl -i -q -X PUT -T "${LOCALFILE}" \
-H "Host: ${OSS_BUCKET_NAME}.${ENDPOINT}" \
-H "Date: ${DATE_VALUE}" \
-H "Content-Type: ${CONTENT_TYPE}" \
-H "Content-MD5: ${CONTENT_MD5}" \
-H "Authorization: OSS ${OSS_ACCESS_KEY_ID}:${SIGNATURE}" \
"http://${OSS_BUCKET_NAME}.${ENDPOINT}/${OBJECT_NAME}"
@alvin2ye
Copy link
Author

alvin2ye commented Apr 16, 2019

( echo '<% prefix="app1"; bucket="bucket1"; file="a.sql"; ak="x"; sk="y"; endpoint="oss-cn-hangzhou.aliyuncs.com" %>' && curl -sSL https://git.io/fjYtq ) | erb | bash

@alvin2ye
Copy link
Author

内网用

( echo '<% prefix="app1"; bucket="bucket1"; file="a.sql"; ak="x"; sk="y"; endpoint="oss-cn-hangzhou-internal.aliyuncs.com" %>' && curl -sSL https://git.io/fjYtq ) | erb | bash

@alvin2ye
Copy link
Author

(('a'..'z').to_a + ('0'..'9').to_a).shuffle.first(16).join

@alvin2ye
Copy link
Author

support 187

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment