

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 添加或删除上游存储库
<a name="repo-upstream-add"></a>

按照以下各节中的步骤在存储库中添加或移除上游 CodeArtifact 存储库。有关上游存储库的更多信息，请参阅[在中使用上游存储库 CodeArtifact](repos-upstream.md)。

本指南包含有关将其他 CodeArtifact 存储库配置为上游存储库的信息。有关配置与 npmjs.com、Nuget Gallery、Maven Central 或 PyPI 等公有存储库的外部连接的信息，请参阅[添加外部连接](https://docs.aws.amazon.com/codeartifact/latest/ug/external-connection.html)。

## 添加或删除上游存储库（控制台）
<a name="repo-upstream-add-console"></a>

执行以下过程中的步骤，使用 CodeArtifact 控制台将存储库添加为上游存储库。有关使用添加上游存储库的信息 AWS CLI，请参阅[添加或删除上游存储库 (AWS CLI)](#repo-upstream-add-cli)。

**使用 CodeArtifact 控制台添加上游存储库**

1. 在 [https://console.aws.amazon.com/codesuite/codeartifact](https://console.aws.amazon.com/codesuite/codeartifact/home) /hom AWS CodeArtifact e 打开控制台。

1.  在导航窗格中，选择**域**，然后选择包含您的存储库的域名。

1.  选择您的存储库的名称。

1.  选择**编辑**。

1.  在**上游存储库**中，选择**关联上游存储库**，然后添加要作为上游存储库添加的存储库。您只能在与上游存储库相同的域中添加存储库。

1.  选择**更新存储库**。

**使用 CodeArtifact 控制台移除上游存储库**

1. 在 [https://console.aws.amazon.com/codesuite/codeartifact](https://console.aws.amazon.com/codesuite/codeartifact/home) /hom AWS CodeArtifact e 打开控制台。

1.  在导航窗格中，选择**域**，然后选择包含您的存储库的域名。

1.  选择您的存储库的名称。

1.  选择**编辑**。

1.  在**上游存储库**中，找到要删除的上游存储库的列表条目，然后选择**取消关联**。
**重要**  
从存储库中删除上游存储 CodeArtifact 库后，包管理员将无法访问上游存储库或其任何上游存储库中的软件包。

1.  选择**更新存储库**。

## 添加或删除上游存储库 (AWS CLI)
<a name="repo-upstream-add-cli"></a>

 您可以使用 AWS Command Line Interface (AWS CLI) 添加或删除 CodeArtifact 存储库的上游存储库。为此，请使用 `update-repository` 命令并使用 `--upstreams` 参数指定上游存储库。

您只能在与上游存储库相同的域中添加存储库。

**添加上游存储库 (AWS CLI)**

1. 如果还没有，请按照中的步骤[使用进行设置 AWS CodeArtifact](get-set-up-for-codeartifact.md)进行设置和配置 CodeArtifact。 AWS CLI 

1. 使用带有 `--upstreams` 标记的 `aws codeartifact update-repository` 命令来添加上游存储库。
**注意**  
调用 `update-repository` 命令会将现有已配置的上游存储库替换为使用 `--upstreams` 标记提供的存储库列表。如果要添加上游存储库并保留现有存储库，则必须在调用中包括现有的上游存储库。

   以下示例命令将两个上游存储库添加到名为 `my_repo` 的存储库，该存储库位于名为 `my_domain` 的域中。`--upstreams`参数中上游存储库的顺序决定了它们在向`my_repo`存储库 CodeArtifact 请求包时的搜索优先级。有关更多信息，请参阅 [上游存储库优先顺序](repo-upstream-search-order.md)。

   有关连接到公有外部存储库（例如 npmjs.com 或 Maven Central）的信息，请参阅[将 CodeArtifact 仓库连接到公共仓库](external-connection.md)。

   ```
   aws codeartifact update-repository \
      --repository my_repo \
      --domain my_domain \
      --domain-owner 111122223333 \
      --upstreams repositoryName=upstream-1 repositoryName=upstream-2
   ```

    输出包含上游存储库，如下所示。

   ```
   {
          "repository": {
              "name": "my_repo",
              "administratorAccount": "123456789012",
              "domainName": "my_domain",
              "domainOwner": "111122223333",
              "arn": "arn:aws:codeartifact:us-east-2:111122223333:repository/my_domain/my_repo",
              "upstreams": [
                  {
                      "repositoryName": "upstream-1"
                  },
                  {
                      "repositoryName": "upstream-2"
                  }
              ],
              "externalConnections": []
          }
      }
   ```

**删除上游存储库 (AWS CLI)**

1. 如果还没有，请按照中的步骤[使用进行设置 AWS CodeArtifact](get-set-up-for-codeartifact.md)进行设置和配置 CodeArtifact。 AWS CLI 

1. 要从存储库中移除上游 CodeArtifact 存储库，请使用带有`--upstreams`标志的`update-repository`命令。提供给该命令的存储库列表将是该存储库的新上游存储 CodeArtifact 库集。包括您要保留的现有上游存储库，并省略要删除的上游存储库。

   要从存储库中删除所有上游存储库，请使用 `update-repository` 命令并包括不带参数的 `--upstreams` 选项。以下示例命令从名为 `my_domain` 的域中包含的名为 `my_repo` 的存储库中删除上游存储库。

   ```
   aws codeartifact update-repository \
      --repository my_repo \
      --domain my_domain \
      --domain-owner 111122223333 \
      --upstreams
   ```

    输出显示 `upstreams` 的列表为空。

   ```
   {
          "repository": {
              "name": "my_repo",
              "administratorAccount": "123456789012",
              "domainName": "my_domain",
              "domainOwner": "111122223333",
              "arn": "arn:aws:codeartifact:us-east-2:111122223333:repository/my_domain/my_repo",
              "upstreams": [],
              "externalConnections": []
          }
      }
   ```