Skip to main content

配置 Blob 存储

需要暂时存储 GitLab 中的存档,以便 GitHub 可以读取它们。

对于大多数客户,我们建议使用 GitHub-owned blob storage.. 这是最简单的路径,不需要任何额外的配置。

但是,如果具有防火墙要求,或者需要在迁移完成后保留存档,则可能需要使用外部提供程序配置存储。

选择要暂存存档的位置

将 GL2GH extension 每个 GitLab 项目导出到存档,然后将存档上传到可从中读取的 GitHub Blob 存储。 运行迁移时,可以选择存储后端。

存储选项如何选择它备注

GitHub-owned blob storage(推荐) | --use-github-storage | 无需设置。 GitHub 在成功迁移后或在迁移失败后的七天后自动删除存档。 AWS S3 | --aws-bucket-name (使用 AWS_REGIONAWS_ACCESS_KEY_ID环境变量 AWS_SECRET_ACCESS_KEY 和环境变量(可选 AWS_SESSION_TOKEN) | 你拥有存储桶及其生命周期。 GitHub 不会从存储中删除存档。 Azure Blob 存储 | AZURE_STORAGE_CONNECTION_STRING 环境变量(对于单个 migrate-repo 命令,可以改用 --azure-storage-connection-string) | 仅支持存储帐户访问密钥连接字符串(而不是 SAS)。 GitHub 不会从存储中删除存档。

配置 Blob 存储

如果使用 GitHub-owned blob storage,则无需配置任何内容。 将使用 --use-github-storage 标志通过 CLI 选择此方法。 但是,如果连接缓慢或代理连接,可能需要将 GITHUB_OWNED_STORAGE_MULTIPART_MEBIBYTES 变量(默认为 100 MiB,最小 5 MiB)设置为较低的数字。

如果使用外部 Blob 存储,则需要设置此存储。

设置 AWS S3 存储桶

在 AWS 中,设置 S3 Bucket。 有关详细信息,请参阅 AWS 文档中的创建 Bucket

还需要具有以下权限的 AWS 访问密钥和密钥:

{
    "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/*"
            ]
        }
    ]
}

注意

迁移完成后,GitHub Enterprise Importer 不会从 AWS 中删除存档。 为了降低存储成本,建议配置在一段时间后自动删除存档。 有关详细信息,请参阅 AWS 文档中的 Bucket 生命周期配置

准备好运行迁移后,你将需要向 GitHub CLI 提供 AWS 凭据:区域、访问密钥、密钥和会话令牌(如果需要)。 可以将它们作为参数传递,或设置名为 AWS_REGIONAWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_SESSION_TOKEN 的环境变量。

你还需要使用 --aws-bucket-name 参数传入 S3 Bucket 的名称。

设置 Azure Blob 存储存储帐户

在 Azure 中,创建存储帐户并记下连接字符串。 有关详细信息,请参阅 Microsoft Docs 中的管理存储帐户访问密钥

注意

迁移完成后,GitHub Enterprise Importer 不会从 Azure Blob 存储中删除存档。 为了降低存储成本,建议配置为在一段时间后自动删除存档。 有关详细信息,请参阅 Microsoft Docs 中的通过自动管理数据生命周期来优化成本

准备好运行迁移时,可以将连接字符串作为参数传递到 GitHub CLI,或使用名为 AZURE_STORAGE_CONNECTION_STRING 的环境变量将其传入。

允许网络访问

如果您已在存储帐户上配置了防火墙规则,请确保您已允许访问迁移目标的 IP 范围。 请参阅“管理从 GitLab 迁移到 GitHub的访问”。