107 lines
3.2 KiB
Bash
Executable File
107 lines
3.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
# OSS 配置检查脚本
|
|
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
RED='\033[0;31m'
|
|
BLUE='\033[0;34m'
|
|
NC='\033[0m'
|
|
|
|
echo -e "${BLUE}========================================${NC}"
|
|
echo -e "${BLUE}OSS 配置检查${NC}"
|
|
echo -e "${BLUE}========================================${NC}"
|
|
echo ""
|
|
|
|
# 检查环境变量
|
|
echo -e "${GREEN}[1/4] 检查环境变量${NC}"
|
|
OSS_REGION=${OSS_REGION:-"cn-shanghai"}
|
|
OSS_BUCKET_NAME=${OSS_BUCKET_NAME:-"top-fans-test"}
|
|
OSS_STS_ROLE_ARN=${OSS_STS_ROLE_ARN:-"acs:ram::1387642798143585:role/top-fans-oss-user"}
|
|
OSS_ACCESS_KEY_ID=${OSS_ACCESS_KEY_ID:-"LTAI5tNaAjTNiHnefMCG3q4J"}
|
|
OSS_ACCESS_KEY_SECRET=${OSS_ACCESS_KEY_SECRET:-"48wwZvNkUn1PO1xWjV4HuE5JjB6G7c"}
|
|
|
|
echo " OSS_REGION: ${OSS_REGION}"
|
|
echo " OSS_BUCKET_NAME: ${OSS_BUCKET_NAME}"
|
|
echo " OSS_STS_ROLE_ARN: ${OSS_STS_ROLE_ARN}"
|
|
echo " OSS_ACCESS_KEY_ID: ${OSS_ACCESS_KEY_ID:0:10}..."
|
|
echo " OSS_ACCESS_KEY_SECRET: ${OSS_ACCESS_KEY_SECRET:0:10}..."
|
|
echo ""
|
|
|
|
# 检查配置完整性
|
|
echo -e "${GREEN}[2/4] 检查配置完整性${NC}"
|
|
MISSING_CONFIG=false
|
|
|
|
if [ -z "$OSS_REGION" ]; then
|
|
echo -e "${RED} ✗ OSS_REGION 未设置${NC}"
|
|
MISSING_CONFIG=true
|
|
else
|
|
echo -e "${GREEN} ✓ OSS_REGION: ${OSS_REGION}${NC}"
|
|
fi
|
|
|
|
if [ -z "$OSS_BUCKET_NAME" ]; then
|
|
echo -e "${RED} ✗ OSS_BUCKET_NAME 未设置${NC}"
|
|
MISSING_CONFIG=true
|
|
else
|
|
echo -e "${GREEN} ✓ OSS_BUCKET_NAME: ${OSS_BUCKET_NAME}${NC}"
|
|
fi
|
|
|
|
if [ -z "$OSS_STS_ROLE_ARN" ]; then
|
|
echo -e "${RED} ✗ OSS_STS_ROLE_ARN 未设置${NC}"
|
|
MISSING_CONFIG=true
|
|
else
|
|
echo -e "${GREEN} ✓ OSS_STS_ROLE_ARN: ${OSS_STS_ROLE_ARN}${NC}"
|
|
fi
|
|
|
|
if [ -z "$OSS_ACCESS_KEY_ID" ]; then
|
|
echo -e "${RED} ✗ OSS_ACCESS_KEY_ID 未设置${NC}"
|
|
MISSING_CONFIG=true
|
|
else
|
|
echo -e "${GREEN} ✓ OSS_ACCESS_KEY_ID: 已设置${NC}"
|
|
fi
|
|
|
|
if [ -z "$OSS_ACCESS_KEY_SECRET" ]; then
|
|
echo -e "${RED} ✗ OSS_ACCESS_KEY_SECRET 未设置${NC}"
|
|
MISSING_CONFIG=true
|
|
else
|
|
echo -e "${GREEN} ✓ OSS_ACCESS_KEY_SECRET: 已设置${NC}"
|
|
fi
|
|
|
|
if [ "$MISSING_CONFIG" = true ]; then
|
|
echo ""
|
|
echo -e "${RED}❌ 配置不完整,请设置缺失的环境变量${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
echo ""
|
|
|
|
# 检查 URL 格式
|
|
echo -e "${GREEN}[3/4] 检查 URL 格式${NC}"
|
|
HOST="https://${OSS_BUCKET_NAME}.oss-${OSS_REGION}.aliyuncs.com"
|
|
echo " OSS Host: ${HOST}"
|
|
echo ""
|
|
|
|
# 检查 Role ARN 格式
|
|
echo -e "${GREEN}[4/4] 检查 Role ARN 格式${NC}"
|
|
if [[ "$OSS_STS_ROLE_ARN" =~ ^acs:ram::[0-9]+:role/[a-zA-Z0-9_-]+$ ]]; then
|
|
echo -e "${GREEN} ✓ Role ARN 格式正确${NC}"
|
|
else
|
|
echo -e "${RED} ✗ Role ARN 格式错误${NC}"
|
|
echo -e "${YELLOW} 正确格式: acs:ram::账户ID:role/角色名${NC}"
|
|
fi
|
|
echo ""
|
|
|
|
echo -e "${BLUE}========================================${NC}"
|
|
echo -e "${BLUE}配置检查完成${NC}"
|
|
echo -e "${BLUE}========================================${NC}"
|
|
echo ""
|
|
echo -e "${YELLOW}注意事项:${NC}"
|
|
echo " 1. 如果 Bucket 是私有的,上传的图片需要使用预签名 URL 访问"
|
|
echo " 2. 如果 AccessKey 失效,需要更新 OSS_ACCESS_KEY_ID 和 OSS_ACCESS_KEY_SECRET"
|
|
echo " 3. 确保 RAM 角色有 OSS 写入权限"
|
|
echo ""
|
|
echo -e "${YELLOW}测试上传:${NC}"
|
|
echo " bash test_oss_upload.sh"
|
|
echo ""
|