Files
llm-gguf-quant-template/scripts/upload_to_modelscope.sh
2026-03-02 23:22:33 +08:00

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}"