59 lines
1.6 KiB
Bash
59 lines
1.6 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
# Usage:
|
|
# ./scripts/upload_to_modelscope.sh <repo_id> <token> [upload_dir] [mode] [commit_message]
|
|
#
|
|
# Examples:
|
|
# ./scripts/upload_to_modelscope.sh your_user/your_repo ms-xxxx
|
|
# ./scripts/upload_to_modelscope.sh your_user/your_repo ms-xxxx modelscope_upload proxy
|
|
#
|
|
# mode:
|
|
# direct (default): unset proxy vars for direct connection
|
|
# proxy: keep current proxy environment
|
|
|
|
REPO_ID="${1:-}"
|
|
TOKEN="${2:-}"
|
|
UPLOAD_DIR_ARG="${3:-modelscope_upload}"
|
|
MODE="${4:-direct}"
|
|
COMMIT_MESSAGE="${5:-Upload model artifacts}"
|
|
|
|
if [[ -z "${REPO_ID}" || -z "${TOKEN}" ]]; then
|
|
echo "Usage: $0 <repo_id> <token> [upload_dir] [mode] [commit_message]"
|
|
exit 1
|
|
fi
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
ROOT_DIR="$(cd "${SCRIPT_DIR}/.." && pwd)"
|
|
UPLOAD_DIR="${UPLOAD_DIR_ARG}"
|
|
if [[ "${UPLOAD_DIR}" != /* ]]; then
|
|
UPLOAD_DIR="${ROOT_DIR}/${UPLOAD_DIR}"
|
|
fi
|
|
|
|
if [[ ! -d "${UPLOAD_DIR}" ]]; then
|
|
echo "Upload directory does not exist: ${UPLOAD_DIR}"
|
|
exit 2
|
|
fi
|
|
|
|
MODELSCOPE_BIN="${ROOT_DIR}/.venv/bin/modelscope"
|
|
if [[ ! -x "${MODELSCOPE_BIN}" ]]; then
|
|
echo "modelscope CLI not found at ${MODELSCOPE_BIN}"
|
|
exit 3
|
|
fi
|
|
|
|
if [[ "${MODE}" == "direct" ]]; then
|
|
RUN_CMD=(env -u HTTP_PROXY -u HTTPS_PROXY -u ALL_PROXY -u NO_PROXY "${MODELSCOPE_BIN}")
|
|
elif [[ "${MODE}" == "proxy" ]]; then
|
|
RUN_CMD=("${MODELSCOPE_BIN}")
|
|
else
|
|
echo "Unsupported mode: ${MODE} (use direct|proxy)"
|
|
exit 4
|
|
fi
|
|
|
|
"${RUN_CMD[@]}" login --token "${TOKEN}"
|
|
"${RUN_CMD[@]}" upload "${REPO_ID}" "${UPLOAD_DIR}" . \
|
|
--repo-type model \
|
|
--commit-message "${COMMIT_MESSAGE}"
|
|
|
|
echo "Upload finished: ${REPO_ID}"
|