# 使用 MinIO 启用GitHub包

以 MinIO 作为外部存储设置 GitHub Packages 。

> \[!WARNING]
>
> * 为存储桶设置所需的限制性访问策略至关重要，因为 GitHub 不会将特定对象权限或其他访问控制列表 (ACL) 应用于存储桶配置。 例如，如果将存储桶设为公共，则在公共互联网上可以访问存储桶中的数据。 如果已设置 IP 地址的限制，请为 你的 GitHub Enterprise Server 实例 和将使用 你的 GitHub Enterprise Server 实例 的最终用户添加 IP 地址。
> * 我们建议对 GitHub Packages 使用专用存储桶，与用于 GitHub Actions 存储的存储桶分开。
> * 请确保配置将来要使用的存储桶。 在开始使用 GitHub Packages 后，我们不建议更改存储系统。
> * 建议为 Bucket 配置 TLS，以避免包注册表可能出现问题，例如，从 NuGet 注册表下载。

## 先决条件

需要先准备 MinIO 对象存储，才能在 GitHub Packages 上启用和配置 你的 GitHub Enterprise Server 实例。 请参阅 [MinIO AIStor 文档](https://docs.min.io/enterprise/aistor-object-store/)。

确保您的 MinIO 外部存储访问密钥 ID 和密码具有以下权限：

* `s3:PutObject`
* `s3:GetObject`
* `s3:ListBucketMultipartUploads`
* `s3:ListMultipartUploadParts`
* `s3:AbortMultipartUpload`
* `s3:DeleteObject`
* `s3:ListBucket`

## 使用 MinIO 外部存储启用 GitHub Packages

虽然 MinIO 目前没有出现在“封装存储”下的用户界面中，MinIO 在 GitHub Packages 上仍然受 GitHub Enterprise 支持。 另请注意，MinIO 的对象存储与 S3 API 兼容，您可以输入MinIO 存储桶详细信息代替 AWS S3 详细信息。

1. 在 GitHub Enterprise Server 上的管理帐户中，在任一页面的右上角，单击“<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-rocket" aria-label="Site admin" role="img"><path d="M14.064 0h.186C15.216 0 16 .784 16 1.75v.186a8.752 8.752 0 0 1-2.564 6.186l-.458.459c-.314.314-.641.616-.979.904v3.207c0 .608-.315 1.172-.833 1.49l-2.774 1.707a.749.749 0 0 1-1.11-.418l-.954-3.102a1.214 1.214 0 0 1-.145-.125L3.754 9.816a1.218 1.218 0 0 1-.124-.145L.528 8.717a.749.749 0 0 1-.418-1.11l1.71-2.774A1.748 1.748 0 0 1 3.31 4h3.204c.288-.338.59-.665.904-.979l.459-.458A8.749 8.749 0 0 1 14.064 0ZM8.938 3.623h-.002l-.458.458c-.76.76-1.437 1.598-2.02 2.5l-1.5 2.317 2.143 2.143 2.317-1.5c.902-.583 1.74-1.26 2.499-2.02l.459-.458a7.25 7.25 0 0 0 2.123-5.127V1.75a.25.25 0 0 0-.25-.25h-.186a7.249 7.249 0 0 0-5.125 2.123ZM3.56 14.56c-.732.732-2.334 1.045-3.005 1.148a.234.234 0 0 1-.201-.064.234.234 0 0 1-.064-.201c.103-.671.416-2.273 1.15-3.003a1.502 1.502 0 1 1 2.12 2.12Zm6.94-3.935c-.088.06-.177.118-.266.175l-2.35 1.521.548 1.783 1.949-1.2a.25.25 0 0 0 .119-.213ZM3.678 8.116 5.2 5.766c.058-.09.117-.178.176-.266H3.309a.25.25 0 0 0-.213.119l-1.2 1.95ZM12 5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg>”。

2. 如果你尚未在“站点管理员”页上，请在左上角单击“站点管理员”。

3. 在“<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-rocket" aria-label="rocket" role="img"><path d="M14.064 0h.186C15.216 0 16 .784 16 1.75v.186a8.752 8.752 0 0 1-2.564 6.186l-.458.459c-.314.314-.641.616-.979.904v3.207c0 .608-.315 1.172-.833 1.49l-2.774 1.707a.749.749 0 0 1-1.11-.418l-.954-3.102a1.214 1.214 0 0 1-.145-.125L3.754 9.816a1.218 1.218 0 0 1-.124-.145L.528 8.717a.749.749 0 0 1-.418-1.11l1.71-2.774A1.748 1.748 0 0 1 3.31 4h3.204c.288-.338.59-.665.904-.979l.459-.458A8.749 8.749 0 0 1 14.064 0ZM8.938 3.623h-.002l-.458.458c-.76.76-1.437 1.598-2.02 2.5l-1.5 2.317 2.143 2.143 2.317-1.5c.902-.583 1.74-1.26 2.499-2.02l.459-.458a7.25 7.25 0 0 0 2.123-5.127V1.75a.25.25 0 0 0-.25-.25h-.186a7.249 7.249 0 0 0-5.125 2.123ZM3.56 14.56c-.732.732-2.334 1.045-3.005 1.148a.234.234 0 0 1-.201-.064.234.234 0 0 1-.064-.201c.103-.671.416-2.273 1.15-3.003a1.502 1.502 0 1 1 2.12 2.12Zm6.94-3.935c-.088.06-.177.118-.266.175l-2.35 1.521.548 1.783 1.949-1.2a.25.25 0 0 0 .119-.213ZM3.678 8.116 5.2 5.766c.058-.09.117-.178.176-.266H3.309a.25.25 0 0 0-.213.119l-1.2 1.95ZM12 5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg> 站点管理”边栏中，单击“管理控制台”\*\*\*\*。

4. 在左侧边栏中，单击“包”。

5. 在“GitHub Packages”下选择“启用 GitHub Packages”复选框。

6. 在“包存储”下，选择“Amazon S3”。

7. 在 AWS 存储设置中输入 MinIO 存储桶的详细信息。
   * AWS 服务 URL：MinIO Bucket 的托管 URL。
   * AWS S3 Bucket：与 S3 兼容的 MinIO Bucket 的名称，专用于 GitHub Packages。
   * **AWS S3 访问密钥**和 **AWS S3 密钥**：输入用于访问 Bucket 的 MinIO 访问密钥 ID 和密钥。

8. 在“设置”边栏下，单击“保存设置”。

   > \[!NOTE]
   > 保存 管理控制台 中的设置会重启系统服务，这可能会导致用户可察觉的停机时间。

9. 等待配置运行完毕。

## 后续步骤

下一步，您可以自定义希望在 GitHub 上向最终用户提供哪些程序包生态系统。 有关详细信息，请参阅“[为企业配置包生态系统支持](/zh/enterprise-server@3.22/admin/configuring-packages/configuring-package-ecosystem-support-for-your-enterprise)”。

有关在 GitHub Packages 上开始使用 GitHub 的概述，请参阅 [企业 GitHub Packages 使用入门](/zh/enterprise-server@3.22/admin/configuring-packages/getting-started-with-github-packages-for-your-enterprise)。