# Настройка хранилища BLOB-объектов

Архивы из GitLab должны быть временно сохранены, чтобы GitHub их можно было прочитать.

Для большинства клиентов рекомендуется хранить архивы с GitHub-owned blob storageпомощью . Это самый простой путь и не требует дополнительной конфигурации.

Однако может потребоваться настроить хранилище с внешним поставщиком, если у вас есть требования к брандмауэру или необходимо сохранить архивы после завершения миграции.

## Выбор места выполнения архивов

Экспортирует GL2GH extension каждый проект GitLab в архив, а затем отправляет архив в хранилище BLOB-объектов, из которых GitHub можно прочитать. При выполнении миграции вы выбираете серверную часть хранилища.

| Вариант хранения | Как выбрать его | Примечания |
| ---------------- | --------------- | ---------- |

GitHub-owned blob storage (рекомендуется) | `--use-github-storage` | Установка не требуется.
GitHub удаляет архив автоматически после успешной миграции или семь дней после неудачной миграции.
AWS S3 |
`--aws-bucket-name`(с `AWS_REGION``AWS_ACCESS_KEY_ID`переменными среды и `AWS_SECRET_ACCESS_KEY` переменными среды, а также при необходимости `AWS_SESSION_TOKEN`) | Вы владеете контейнером и его жизненным циклом.
GitHub не удаляет архивы из хранилища.
Хранилище BLOB-объектов Azure (Азур Блоб Сторадж) |
`AZURE_STORAGE_CONNECTION_STRING` переменная среды (для одной `migrate-repo` команды можно использовать `--azure-storage-connection-string`) | Поддерживаются только строки подключения к ключу доступа к учетной записи хранения (а не SAS).
GitHub не удаляет архивы из хранилища.

## Настройка хранилища BLOB-объектов

Если вы используете GitHub-owned blob storage, вам не нужно ничего настраивать. Вы будете `--use-github-storage` использовать флаг для выбора этого метода с помощью интерфейса командной строки. Однако может потребоваться задать `GITHUB_OWNED_STORAGE_MULTIPART_MEBIBYTES` переменную (по умолчанию 100 МиБ, минимум 5 МиБ) меньшее число, если у вас есть медленное или прокси-подключение.

Если вы используете внешнее хранилище BLOB-объектов, необходимо настроить его.

### Настройка контейнера хранилища AWS S3

В AWS настройте контейнер S3. Дополнительные сведения см. в разделе ["Создание контейнера](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) " в документации ПО AWS.

Вам также потребуется ключ доступа AWS и секретный ключ со следующими разрешениями:

```json
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:ListBucketMultipartUploads",
                "s3:AbortMultipartUpload",
                "s3:ListBucket",
                "s3:DeleteObject",
                "s3:ListMultipartUploadParts"
            ],
            "Resource": [
                "arn:aws:s3:::github-migration-bucket",
                "arn:aws:s3:::github-migration-bucket/*"
            ]
        }
    ]
}
```

> \[!NOTE]
> GitHub Enterprise Importer не удаляет архив из AWS после завершения миграции. Чтобы сократить затраты на хранение, рекомендуется настроить автоматическое удаление архива через период времени. Дополнительные сведения см. в разделе [Настройка конфигурации жизненного цикла в контейнере](https://docs.aws.amazon.com/AmazonS3/latest/userguide/how-to-set-lifecycle-configuration-intro.html) в документации AWS.

Когда вы будете готовы к миграции, вам потребуется предоставить учетные данные AWS в GitHub CLI: регион, ключ доступа, секретный ключ и маркер сеанса (при необходимости). Их можно передать в качестве аргументов или задать переменные среды, называемые `AWS_REGION`, и `AWS_SESSION_TOKEN``AWS_ACCESS_KEY_ID``AWS_SECRET_ACCESS_KEY`.

Кроме того, необходимо передать имя контейнера S3 с помощью аргумента `--aws-bucket-name` .

### Настройка учетной записи хранения Хранилище BLOB-объектов Azure

В Azure создайте учетную запись хранения и запишите строка подключения. Дополнительные сведения см. в разделе ["Управление ключами](https://learn.microsoft.com/en-gb/azure/storage/common/storage-account-keys-manage?tabs=azure-portal#regenerate-access-keys) доступа к учетной записи хранения" в Документация Майкрософт.

> \[!NOTE]
> GitHub Enterprise Importer не удаляет архив из Хранилище BLOB-объектов Azure после завершения миграции. Чтобы сократить затраты на хранение, рекомендуется настроить автоматическое удаление архива через период времени. Дополнительные сведения см. в статье ["Оптимизация затрат путем автоматического управления жизненным циклом](https://learn.microsoft.com/en-us/azure/storage/blobs/lifecycle-management-overview) данных в Документация Майкрософт".

Когда вы будете готовы выполнить миграцию, вы можете передать строка подключения в GitHub CLI в качестве аргумента или передать его с помощью переменной `AZURE_STORAGE_CONNECTION_STRING`среды.

### Разрешение сетевого доступа

Если вы настроили правила брандмауэра в учетной записи хранения, убедитесь, что у вас есть доступ к диапазонам IP-адресов для назначения миграции. См [. раздел AUTOTITLE](/ru/migrations/using-github-enterprise-importer/migrate-from-gitlab/manage-access#configure-ip-allow-lists-on-github).