上传文件至阿里云 OSS(实现文件中转站)
需求:工作中经常需要传输文件,某些场景只支持https链接进行下载,故需要一个下载速度快、文件链接为https、长期稳定的文件中转站。
实现:经过分析,阿里云 OSS 正好满足;
此脚本实现上传文件到阿里云OSS(使用阿里云ossutil工具进行上传),并获取文件下载地址;
使用前需先安装并配置 ossutil 工具
ossutil 参考文档:https://help.aliyun.com/zh/oss/developer-reference/ossutil-1/
upload.sh(使用前需先安装配置ossutil,见后方步骤)
#!/bin/bash
COLOR_MAGENTA="\E[0;35m"
COLOR_RED="\E[0;31m"
COLOR_RESET="\E[0m"
OSS_BUCKET="yunwei361"
OSS_ENDPOINT="oss-cn-chengdu.aliyuncs.com"
OSS_DIR="ws"
LOCAL_FILE_PATH="$1"
OSS_OBJECT_PATH="${OSS_DIR}/$(basename $1)"
# check args
if [ "$#" -ne 1 ]; then
echo -e "${COLOR_RED}Useage: upload /path/filename${COLOR_RESET}"
exit 1
fi
if [ ! -f "$1" ]; then
echo -e "${COLOR_RED}Error: Only support upload a regular file!${COLOR_RESET}"
exit 2
fi
# use ossutil upload file & set acl public-read
ossutil cp "$LOCAL_FILE_PATH" "oss://$OSS_BUCKET/$OSS_OBJECT_PATH" --force --acl public-read
# check succeed or failed
if [ $? -eq 0 ]; then
echo -e "\nDownload URL:\n${COLOR_MAGENTA}https://${OSS_BUCKET}.${OSS_ENDPOINT}/${OSS_OBJECT_PATH}${COLOR_RESET}\n"
else
echo -e "\n${COLOR_RED}:( Upload failed !${COLOR_RESET}\n"
fi赋可执行权限
cp upload.sh /usr/local/bin/upload
chmod +x /usr/local/bin/upload
install-ossutil.sh(安装 ossutil, 此脚本只适用于x86机器)
#!/bin/bash
set -e
work_path=/usr/local/ossutil
if [ ! -e $work_path ]; then
mkdir -p $work_path
fi
version=$(curl -s https://gosspublic.alicdn.com/ossutil/version.txt | awk -F 'v' '{print $NF}')
ossutil_zip=ossutil-v${version}-linux-amd64.zip
download_link=https://gosspublic.alicdn.com/ossutil/${version}/$ossutil_zip
# download
curl -sSL -o $work_path/$ossutil_zip $download_link
# unzip
unzip -q $work_path/$ossutil_zip -d $work_path
# make symbolic link
ln -sf $work_path/ossutil-v${version}-linux-amd64/ossutil /usr/bin/ossutil配置 ossutil
# https://help.aliyun.com/zh/oss/developer-reference/configure-ossutil
# -e --endpoint
# -i --access-key-id
# -k --access-key-secret
ossutil config \
-e oss-cn-chengdu.aliyuncs.com \
-i uTAI5t99wtrTut7Y8DEAsZ5L \
-k M61eU2JVin6vUvAUzeWjapDzD2s3EzLast updated