---
metadata:
  - name: generator
    content: Diplodoc Platform v5.70.0
alternate:
  - https://sourcecraft.dev/portal/docs/ru/sourcecraft/operations/configure-binary.md
  - href: https://sourcecraft.dev/portal/docs/ru/sourcecraft/operations/configure-binary.md
    type: text/markdown
    title: Markdown version
  - href: https://sourcecraft.dev/portal/docs/ru/llms.txt?revision=r22101122
    rel: describedby
title: Работать с реестром Binary в SourceCraft
description: Инструкция по загрузке произвольных файлов в реестр Binary в SourceCraft и скачиванию файлов из реестра.
---
> **Documentation Index:** Fetch the complete configuration index at https://sourcecraft.dev/portal/docs/ru/llms.txt?revision=r22101122


# Работать с реестром Binary

В реестре Binary можно хранить произвольные файлы: скрипты, исполняемые файлы, документы и другие артефакты. Для загрузки и скачивания файлов используйте [cURL](https://curl.se/).

## Подготовка к работе {#prepare}

1. [Создайте реестр](https://sourcecraft.dev/portal/docs/ru/sourcecraft/operations/packages-management.md) типа **Binary** или [подключите существующий](https://sourcecraft.dev/portal/docs/ru/sourcecraft/operations/packages-management.md#existing-registry).
1. [Создайте](https://sourcecraft.dev/portal/docs/ru/sourcecraft/security/pat.md#create) персональный токен (PAT).
1. Создайте переменные окружения с данными для аутентификации:

    ```bash
    export REGISTRY_USERNAME="iam"
    export REGISTRY_PASSWORD="<персональный_токен_PAT>"
    ```

<!-- source: ru/_includes/sourcecraft/get-slug-registry-id-notice.md -->
{% note tip %}

Слаг организации и идентификатор реестра вы можете узнать на странице реестра в интерфейсе SourceCraft.

{% endnote %}
<!-- endsource: ru/_includes/sourcecraft/get-slug-registry-id-notice.md -->

## Загрузить файл в реестр {#push}

Выполните HTTP-запрос методом PUT:

```bash
curl \
  --request PUT \
  --user "$REGISTRY_USERNAME:$REGISTRY_PASSWORD" \
  --upload-file "<локальный_путь_к_файлу>" \
  "https://pkg.sourcecraft.tech/binaries/<слаг_организации>/<идентификатор_реестра>/<имя_артефакта>/<версия_артефакта>/<имя_файла_в_реестре>"
```

В URL укажите имя и версию артефакта, а также имя, под которым файл будет храниться в реестре. Например: `sample-package/1.0.0/installer.sh`.

Чтобы сервис проверил целостность загруженного файла, добавьте к запросу параметр `--header "X-Checksum-SHA256: <хеш_файла>"`. Получить хеш можно командой:

```bash
openssl dgst -sha256 "<локальный_путь_к_файлу>" | awk '{print $2}'
```

## Скачать файл из реестра {#pull}

Выполните HTTP-запрос методом GET:

```bash
curl \
  --request GET \
  --user "$REGISTRY_USERNAME:$REGISTRY_PASSWORD" \
  --location \
  --output "<локальный_путь_к_файлу>" \
  "https://pkg.sourcecraft.tech/binaries/<слаг_организации>/<идентификатор_реестра>/<имя_артефакта>/<версия_артефакта>"
```

В URL для скачивания укажите имя и версию артефакта без имени файла. Параметр `--output` задает путь и имя файла на вашем компьютере.

#### Полезные ссылки {#see-also}

* [Пакеты (packages)](https://sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/index.md#packages)
* [Создать реестр (registry) в SourceCraft](https://sourcecraft.dev/portal/docs/ru/sourcecraft/operations/packages-management.md)
* [Подключить реестр (registry) к репозиторию SourceCraft](https://sourcecraft.dev/portal/docs/ru/sourcecraft/operations/connect-registry.md)
* [Настроить Go](https://sourcecraft.dev/portal/docs/ru/sourcecraft/operations/configure-go.md)
