删除和恢复包
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Azure Artifacts 安全地将各种包类型存储在源中,无论你是直接发布它们还是从上游源保存它们。 随着较旧的包版本变得不太相关,可以考虑通过手动删除或使用保留策略将其删除。 本文将指导如何进行以下操作:
- 从源中删除包。
- 设置保留策略。
- 手动永久删除包。
- 恢复最近删除的包。
注意
若要删除/恢复包或设置保留策略,你必须是 源所有者。
删除包
在 Azure Artifacts 中,包是不可变的。 将包发布到源后,其版本号将永久保留。 即使从源中删除它,也不能发布具有相同版本号的新包。
注意
必须是 源发布者(参与者) 才能取消列出包和 源所有者 才能将其删除。
有两种可用选项可用于从源、 取消列出 和 删除 NuGet 包。 取消列出包版本会将它从 Azure Artifacts 源和 NuGet.org 中的搜索结果中隐藏,同时删除包版本会将其发送到回收站,并使其无法安装。
登录到 Azure DevOps 组织,并导航到你的项目。
选择“ 项目”,然后从下拉菜单中选择源。
选择要删除的包,然后选择“取消列出”或“删除”。
使用 NuGet.exe 取消列出包
登录到 Azure DevOps 组织,并导航到你的项目。
选择“ 项目”,然后从下拉菜单中选择源。
选择连接以NuGet.exe馈送>,然后查找并复制包源 URL。 它应类似于以下格式: “https://pkgs.dev.azure.com/OrganizationName/ProjectName/_packaging/FeedName/nuget/v3/index.json"。
运行以下命令以取消列出 NuGet 包:
nuget.exe delete <PACKAGE_NAME> <PACKAGE_VERSION> -Source <PACKAGE_SOURCE_URL> -ApiKey <KEY>
注意
Azure DevOps 和 Visual Studio Team Foundation Server 将 nuget.exe delete
命令解释为未列出操作。 若要删除包,必须使用 REST API 或从 Web 界面手动删除它。
永久删除包
在回收站中放置的包在 30 天后会永久删除,但它们在此期间仍会持续产生存储成本。 如果要在此时间段之前删除它们,可以按照以下步骤手动将其从回收站中删除:
登录到 Azure DevOps 组织,并导航到你的项目。
选择“ 项目”,然后从下拉菜单中选择源。
从右上角选择 回收站 。
选择要永久删除的包,然后选择 “永久删除”。
再次选择“永久删除”以确认你的决定。 包将永久删除。
使用保留策略自动删除包
源中托管的每个包的版本数可能会很快增长。 若要释放存储空间,可以设置保留策略以自动删除旧包。
如果要无限期地保留包,可以将其提升为 视图。 提升到视图的包不受保留策略的豁免,不会受到删除的约束。 若要为源配置保留策略,请执行以下步骤:
注意
Azure Artifacts 不支持包降级。
登录到 Azure DevOps 组织,并导航到你的项目。
选择“项目”,然后从右上角选择齿轮图标以访问源的设置。
选择“源详细信息”,然后检查“启用包保留”检查框。 提供每个 包 的最大版本数和 天数的值,以保留最近下载的包。
每个包的最大版本数:要保留的每个包的版本数。
保留最近下载的包的天数:仅当包尚未下载到此处指定的天数时,才会删除这些包。
完成时选择“保存” 。
注意
启用保留策略时,满足以下两个条件时,将删除包的版本:
- 已发布版本数达到 每个包 限制的最大版本数。
- 该包的版本尚未在“天”中指定的 时间段内下载,以保留最近下载的包。
还原已删除的包
已删除的包在回收站中保留 30 天。 在此时间段后,它们将被永久删除。 必须是源 所有者 才能还原已删除的包。
登录到 Azure DevOps 组织,并导航到你的项目。
选择 项目,然后选择 回收站。
选择包,然后选择“ 还原”。
再次选择“还原”以确认你的决定。
问答
问:弃用、取消列出、洋克和删除包版本有何区别?
答:弃用适用于 npm 包,Yank 适用于 Cargo 包,而 Unlist 适用于 NuGet 包。 还可以 删除 任何包类型(npm、Maven、Python、Cargo 和通用包):
弃用(npm):弃用包版本时,会将警告消息添加到包的元数据中。 每当查看或安装包时,Azure Artifacts 和大多数 npm 客户端都会显示此警告消息。
取消列出 (NuGet):取消列出包版本会将它从 Azure Artifacts 源中的搜索结果和 NuGet.org 上隐藏。
洋克 (Cargo):扬金包版本将其标记为已过时或已弃用,从而阻止其使用,但不会删除该包。
删除:删除包版本会使安装不可用。 删除的包可以在删除后的 30 天内从回收站还原。 在此时间段后,将永久删除包。
问:启用保留策略时,旧包或现有包会发生什么情况?
答:旧包或现有包将被软删除并移动到回收站。 删除作业每天运行一次,但由于包的涌入,首次启用策略后最初可能会出现延迟。
包在回收站中保留 30 天,然后才会永久删除。 若要从计费存储中删除包,可以选择在 30 天结束之前使用 UI 或 REST API 手动将其删除。
问:删除 Artifacts 后,计费存储的更新需要多长时间?
答:通常,存储消耗应在 24 小时内更新,但在某些情况下,可能需要长达 48 小时才能反映更改。 组织的计费页上的项目使用情况每天更新一次。 但是,“项目存储”页更新得更频繁,这可能会导致两页上显示的信息之间存在细微差异。