Загрузить Go-модуль в реестр
Перед загрузкой подготовьте ZIP-архив Go-модуля. Подробнее в инструкции Создать Go-модуль.
-
Создайте переменные окружения в зависимости от способа аутентификации:
IAM-токенAPI-ключ-
Получите IAM-токен для аккаунта на Яндексе или сервисного аккаунта, от имени которого вы будете выполнять аутентификацию.
-
Создайте переменные окружения
REGISTRY_USERNAMEиREGISTRY_PASSWORD:export REGISTRY_USERNAME="iam" export REGISTRY_PASSWORD="<IAM-токен>"Где:
REGISTRY_USERNAME— способ аутентификации.REGISTRY_PASSWORD— тело полученного ранее IAM-токена.
Примечание
Время жизни IAM-токена — не больше 12 часов.
-
Создайте API-ключ для сервисного аккаунта, от имени которого вы будете выполнять аутентификацию.
-
Создайте переменные окружения
REGISTRY_USERNAMEиREGISTRY_PASSWORD:export REGISTRY_USERNAME="api_key" export REGISTRY_PASSWORD="<API-ключ>"Где:
REGISTRY_USERNAME— способ аутентификации.REGISTRY_PASSWORD— тело созданного ранее API-ключа.
Примечание
Время жизни API-ключа ограничивается вручную при создании.
-
-
Загрузите Go-модуль с помощью HTTP-запроса методом PUT:
curl \ --request PUT \ --user "$REGISTRY_USERNAME:$REGISTRY_PASSWORD" \ --header "X-Checksum-SHA256: <хеш_файла>" \ --upload-file <локальный_путь_к_ZIP-архиву> \ https://registry.yandexcloud.net/go/<идентификатор_реестра>/<имя_модуля>/<версия_модуля>/<имя_файла_в_реестре>Где:
-
--request— метод. -
--user— данные для аутентификации. -
--header— заголовок API-запроса. Необязательный параметр.В заголовке
X-Checksum-SHA256вы можете передать хеш загружаемого файла, чтобы после загрузки сервис проверил его целостность. Сгенерировать хеш можно, например, с помощью команды:openssl dgst -sha256 <путь_к_файлу> | awk '{print $2}' -
--upload-file— локальный путь к загружаемому ZIP-архиву. -
URL запроса содержит URL реестра, имя и версию Go-модуля, а также имя файла в реестре. Например:
https://registry.yandexcloud.net/go/cn15fqbr806r********/mymodule/1.0.0/mymodule-v1.0.0.zip
Важно
Версия Go-модуля в URL передается без префикса
v. Например, для версииv1.0.0укажите1.0.0.Важно
При публикации Go-модуля его имя указывается без префикса
registry.yandexcloud.net/go/<идентификатор_реестра>/. Если основная версия Go-модуля больше 1, суффикс/vNтакже не указывается. Например, для Go-модуляregistry.yandexcloud.net/go/<идентификатор_реестра>/sample/module/v4используйте имяsample/module. -