linux 使用crul 调用图片上传接口
接口详情
登录接口
图片上接口
Linux脚本
GIN_URL="http://localhost:8070/login"
UPLOAD_URL="http://localhost:8070/check/record/compositeImage"
USERNAME="admin1234"
PASSWORD="R3hna3RjQDIwMjM="
IMAGE_PATH="/home/upload.jpg"
IMAGE_INFO="Sample Image"
FILE_SOURCE="9"
# 生成不重复的字符串集合
declare -A GENERATED_STRINGS
# 生成一个16位不重复的字符串
generate_unique_random_string() {
while true; do
RANDOM_STRING=$(cat /dev/urandom | tr -dc 'A-Za-z0-9' | head -c 16)
if [[ -z "${GENERATED_STRINGS[$RANDOM_STRING]}" ]]; then
GENERATED_STRINGS[$RANDOM_STRING]=1
echo $RANDOM_STRING
return
fi
done
}
# 生成一个随机字符串
RANDOM_PARAM=$(generate_unique_random_string)
echo "生成的随机字符串: $RANDOM_PARAM"
# 获取 Token
echo "$(date '+%Y-%m-%d %H:%M:%S') - 正在登录并获取 token..."
TOKEN_RESPONSE=$(curl -X POST "$GIN_URL" \
-H "Content-Type: application/json" \
-d '{"username":"$USERNAME","password":"$PASSWORD"}')
# 打印登录请求返回的参数
echo "$(date '+%Y-%m-%d %H:%M:%S') - 登录响应: $TOKEN_RESPONSE"
# 从响应中提取 token
TOKEN=$(echo "$TOKEN_RESPONSE" | jq -r '.token')
# 检查 token 是否成功获取
if [ "$TOKEN" == "null" ] || [ -z "$TOKEN" ]; then
echo "$(date '+%Y-%m-%d %H:%M:%S') - 获取 token 失败!响应: $TOKEN_RESPONSE"
exit 1
fi
echo "$(date '+%Y-%m-%d %H:%M:%S') - 获取到的 token: $TOKEN"
# 上传图片
echo "$(date '+%Y-%m-%d %H:%M:%S') - 开始上传图片..."
UPLOAD_RESPONSE=$(curl -s -X POST "$UPLOAD_URL" \
-H "Authorization:$TOKEN" \
-F "file=@$IMAGE_PATH" \
-F "imageInfo=$IMAGE_INFO" \
-F "fileSource=$FILE_SOURCE" \
-F "random=$RANDOM_PARAM")
# 输出上传响应
echo "$(date '+%Y-%m-%d %H:%M:%S') - 上传响应: $UPLOAD_RESPONSE"
# 检查上传是否成功(根据你的 API 响应结构调整)