jenkins/deploy_s3cmd_download.sh

63 lines
1.6 KiB
Bash
Raw Permalink Normal View History

2025-04-22 10:44:36 +08:00
#!/bin/bash
# <20><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>
CYAN="\033[1;36m"
RED="\033[0;31m"
GREEN="\033[1;32m"
RESET="\033[0m"
:<<'COMMENT'
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>OSS<EFBFBD>ڲ<EFBFBD>Ͱ<EFBFBD><EFBFBD><EFBFBD>ʴ洢·<EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
<EFBFBD>Զ<EFBFBD>ʶ<EFBFBD><EFBFBD>Ŀ¼<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
COMMENT
# <20><><EFBFBD><EFBFBD>ش洢·<E6B4A2><C2B7>
LOCAL_PATH="/data/media"
mkdir -p "$LOCAL_PATH" # ȷ<><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
# OSS<53>ڲ<EFBFBD>Ͱ<EFBFBD><CDB0><EFBFBD>ⲿͰ<E2B2BF><CDB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
INTERNAL_S3CFG=~/.s3cfg-internal
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
if [ ! -f "$INTERNAL_S3CFG" ]; then
echo -e "${RED}Internal S3 configuration file not found.${RESET}"
exit 1
fi
# <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>OSS·<53><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if [ $# -eq 0 ]; then
echo -e "${RED}No OSS paths provided. Please provide OSS paths as arguments.${RESET}"
exit 1
fi
# <20><><EFBFBD><EFBFBD>OSS·<53><C2B7><EFBFBD>б<EFBFBD>
for oss_path in "$@"; do
echo -e "${CYAN}Processing OSS path: $oss_path${RESET}"
# <20><><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>Ч
if [[ ! $oss_path =~ ^s3:// ]]; then
echo -e "${RED}Skipping invalid OSS path: $oss_path${RESET}"
continue
fi
# <20><>ȡĿ<C8A1><C4BF>·<EFBFBD><C2B7><EFBFBD>ı<EFBFBD><C4B1><EFBFBD>·<EFBFBD><C2B7>
local_target="$LOCAL_PATH/$(basename "$oss_path")"
if [[ $oss_path =~ /$ ]]; then
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ¼<C4BF><C2BC>ȷ<EFBFBD><C8B7>β<EFBFBD><CEB2><EFBFBD><EFBFBD>б<EFBFBD><D0B1>
local_target="$LOCAL_PATH/$(basename "$oss_path")/"
mkdir -p "$local_target" # ȷ<><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ¼<C4BF><C2BC><EFBFBD><EFBFBD>
fi
# ʹ<><CAB9> s3cmd sync ͬ<><CDAC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>Ŀ¼
echo -e "${GREEN}Syncing $oss_path to local path $local_target${RESET}"
s3cmd -c "$INTERNAL_S3CFG" sync "$oss_path" "$local_target" # | grep "Downloaded"
if [ $? -eq 0 ]; then
echo -e "${GREEN}Successfully synced $oss_path to $local_target${RESET}"
else
echo -e "${RED}Error: Failed to sync $oss_path.${RESET}"
fi
done
echo -e "${GREEN}Script execution completed.${RESET}"