shell脚本上传文件到阿里云OSS
bin/bash。
·
脚本文件如下:
#!/bin/bash
# OSS 凭据和终端
ACCESS_KEY_ID="your-access-key-id"
ACCESS_KEY_SECRET="your-access-key-secret"
ENDPOINT="your-bucket-endpoint"
BUCKET_NAME="your-bucket-name"
# 文件路径
FILE_PATH="/path/to/your/file"
FILE_NAME=$(basename $FILE_PATH)
# 资源标识
RESOURCE="/${BUCKET_NAME}/${FILE_NAME}"
CONTENT_TYPE="application/octet-stream"
DATE_VALUE=$(date -Ru)
STRING_TO_SIGN="PUT\n\n${CONTENT_TYPE}\n${DATE_VALUE}\n${RESOURCE}"
SIGNATURE=$(echo -en $STRING_TO_SIGN | openssl sha1 -hmac $ACCESS_KEY_SECRET -binary | base64)
# 上传文件
curl -X PUT -T "${FILE_PATH}" \
-H "Host: ${BUCKET_NAME}.${ENDPOINT}" \
-H "Date: ${DATE_VALUE}" \
-H "Content-Type: ${CONTENT_TYPE}" \
-H "Authorization: OSS ${ACCESS_KEY_ID}:${SIGNATURE}" \
"http://${BUCKET_NAME}.${ENDPOINT}/${FILE_NAME}"
如果想知道是否上传成功,可以修改为
# 上传文件
Http_response=$(curl -w "%{http_code}" -X PUT -T "${FILE_PATH}" \
-H "Host: ${BUCKET_NAME}.${ENDPOINT}" \
-H "Date: ${DATE_VALUE}" \
-H "Content-Type: ${CONTENT_TYPE}" \
-H "Authorization: OSS ${ACCESS_KEY_ID}:${SIGNATURE}" \
"http://${BUCKET_NAME}.${ENDPOINT}/${FILE_NAME}")
if [ "Http_response" -eq 200 ]; then
ehco "upload sucess"
else
echo "upload failed"
fi
备注
如果出现错误: DATE_VALUE=$(date -Ru)改为
DATE_VALUE=$(TZ=GMT date +"%a, %d %b %Y %H:%M:%S %z")
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)