#!/usr/bin/env bash set -euo pipefail KEY="$HOME/.ssh/aws_eafon.pem" REMOTE_DIR="/data/project/app-api/" SERVER="api1" if [ $# -gt 0 ] && { [ "$1" = "api1" ] || [ "$1" = "api2" ]; }; then SERVER="$1" shift fi case "$SERVER" in api1) REMOTE_HOST="ubuntu@ec2-18-184-205-87.eu-central-1.compute.amazonaws.com" ;; api2) REMOTE_HOST="ubuntu@ec2-3-71-153-45.eu-central-1.compute.amazonaws.com" ;; *) echo "未知服务器: $SERVER(可选: api1, api2)" >&2 exit 1 ;; esac REMOTE="${REMOTE_HOST}:${REMOTE_DIR}" if [ $# -eq 0 ]; then PATHS=( ./cmd/ ./internal/ ./pkg ./go.mod ./go.sum ./Dockerfile ./docker-compose.yml ) else PATHS=("$@") fi echo "上传到 ${SERVER} (${REMOTE_HOST}) ..." scp -i "$KEY" -r "${PATHS[@]}" "$REMOTE"