#!/bin/bash # ============================================ # 图片URL测试脚本 # ============================================ echo "======================================" echo " 图片URL测试" echo "======================================" echo "" if [ -z "$1" ]; then echo "用法: bash test_image_url.sh <图片URL>" echo "" echo "示例:" echo " bash test_image_url.sh https://example.com/image.jpg" exit 1 fi IMAGE_URL="$1" echo "测试URL: $IMAGE_URL" echo "" # 检查URL格式 if [[ ! "$IMAGE_URL" =~ ^https?:// ]]; then echo "❌ 错误: URL格式不正确,必须以 http:// 或 https:// 开头" exit 1 fi echo "✅ URL格式正确" echo "" # 检查URL可访问性 echo "检查URL可访问性..." HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" -I "$IMAGE_URL") if [ "$HTTP_CODE" = "200" ]; then echo "✅ URL可访问 (HTTP $HTTP_CODE)" elif [ "$HTTP_CODE" = "404" ]; then echo "❌ URL不存在 (HTTP 404)" echo "" echo "可能的原因:" echo " 1. 图片已被删除" echo " 2. URL已过期" echo " 3. URL错误" exit 1 elif [ "$HTTP_CODE" = "403" ]; then echo "❌ 无权限访问 (HTTP 403)" echo "" echo "可能的原因:" echo " 1. 需要认证" echo " 2. IP被限制" echo " 3. 需要特定Referer" exit 1 else echo "⚠️ 警告: HTTP状态码 $HTTP_CODE" fi echo "" # 检查Content-Type echo "检查图片类型..." CONTENT_TYPE=$(curl -s -I "$IMAGE_URL" | grep -i "Content-Type" | awk '{print $2}' | tr -d '\r') if [[ "$CONTENT_TYPE" =~ image/ ]]; then echo "✅ 图片类型: $CONTENT_TYPE" else echo "⚠️ 警告: Content-Type 不是图片类型: $CONTENT_TYPE" fi echo "" # 检查文件大小 echo "检查文件大小..." CONTENT_LENGTH=$(curl -s -I "$IMAGE_URL" | grep -i "Content-Length" | awk '{print $2}' | tr -d '\r') if [ -n "$CONTENT_LENGTH" ]; then SIZE_KB=$((CONTENT_LENGTH / 1024)) echo "✅ 文件大小: ${SIZE_KB}KB" if [ $SIZE_KB -lt 10 ]; then echo "⚠️ 警告: 文件过小,可能不是有效图片" elif [ $SIZE_KB -gt 10240 ]; then echo "⚠️ 警告: 文件过大(>10MB),可能影响处理速度" fi else echo "⚠️ 警告: 无法获取文件大小" fi echo "" echo "======================================" echo " ✅ 测试完成" echo "======================================" echo "" echo "该图片URL可以用于作业批改工作流"