共用方式為


刪除和復原套件

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Azure Artifacts 會安全地將各種套件類型儲存在 Feed 中,無論是直接發佈還是從上游來源儲存。 隨著較舊的套件版本變得較不相關,您可以手動移除它們,或使用保留原則來釋出空間並降低成本。

先決條件

產品 需求
Azure DevOps -「Azure DevOps」組織
- Azure DevOps 項目
- Azure Artifacts 提要
- 權限:
    - 您必須是 摘要擁有者,才能設定保留原則、刪除套件和摘要,或從回收站還原套件。
    - 您必須是 資源發布者(參與者) 或更高,才能取消列出、停用或撤回套件。

刪除套件

在 Azure Artifacts 中,套件是不可變的,這表示發行後無法重複使用或修改其版本號碼。 當您將套件發佈到一個資料饋送後,其版本號會被永久保留。 即使您刪除套件,其版本仍會記錄在摘要的歷程記錄中,而且您無法發佈具有相同版本號碼的新套件。

有兩種方式可從摘要中移除 NuGet 套件:取消列出刪除。 取消列出套件版本會將它隱藏在 Azure Artifacts 摘要和 NuGet.org的搜尋結果中。刪除套件版本會將它移至回收站,並使其無法進行安裝。

  1. 登入您的 Azure DevOps 組織,然後流覽至您的專案。

  2. 選取 Artifacts,然後從下拉功能表中選取您的信息流。

  3. 選取您要刪除的套件,然後選取 [從清單中移除] 以將其從 Azure Artifacts 摘要和 NuGet.org的搜尋結果中隱藏,或選取 [刪除] 將其移至回收站。

    顯示如何在 Azure Artifacts 中刪除或取消列出 NuGet 套件的螢幕快照。

停止列出套件(CLI)

  1. 登入您的 Azure DevOps 組織,然後流覽至您的專案。

  2. 選取 工件,然後從下拉功能表中選取您的摘要。

  3. 選取 以連線到摘要>NuGet.exe,然後尋找並複製您的 套件來源 URL。 它應該遵循下列格式:https://pkgs.dev.azure.com/OrganizationName/ProjectName/_packaging/FeedName/nuget/v3/index.json

  4. 執行下列命令以取消列出您的套件。 ApiKey 參數是必需的,但在發佈到 Azure Artifacts 儲存庫時會被視為佔位符,因此您可以使用任何字串值:

    nuget.exe delete <PACKAGE_NAME> <PACKAGE_VERSION> -Source <PACKAGE_SOURCE_URL> -ApiKey <ANY_STRING>
    

這很重要

Azure DevOps 會將 nuget.exe delete 命令解譯為不列入清單的操作。 這表示執行 命令不會刪除套件,而是將它隱藏在 Azure Artifacts 摘要和 NuGet.org 的搜尋結果中。若要從摘要中刪除套件,您必須使用 REST API,或從 Web 介面手動刪除它。

永久刪除套件

回收站中的套件會在 30 天后自動刪除,但仍計入您在此期間的記憶體使用量。 若要更快移除它們,您可以遵循下列步驟,從回收站手動將其刪除:

  1. 登入您的 Azure DevOps 組織,然後流覽至您的專案。

  2. 選取 工件,然後從下拉功能表中選取您的訂閱。

  3. 在右上角,選取 [回收站]

  4. 選擇您要永久刪除的套件,然後選擇 [永久刪除] [永久刪除]

    顯示如何在 Azure Artifacts 中永久刪除套件的螢幕快照。

  5. 請再次點選 永久刪除 以確認您的決定。 您的套件將會永久刪除。

    顯示刪除套件前的確認訊息的螢幕快照。

根據保留原則自動刪除套件

隨著您供應來源中的套件版本數目增加,儲存空間使用量可能會快速增加。 您可以設定保留原則來自動刪除舊套件版本並釋放空間。

如果您需要無限期地保留套件,請將它升級為 檢視。 在檢視中的套件不受保留原則的影響,且不會被刪除。 若要設定資訊流的保留政策,請遵循下列步驟:

備註

Azure Artifacts 不支援套件降級。 一旦封包升階為檢視,就無法將它恢復到 @local

  1. 登入您的 Azure DevOps 組織,然後流覽至您的專案。

  2. 請選取 工件,然後選取位於右上角的齒輪圖示 ,以進入摘要設定。

  3. 選取 提要詳細資料,核取 啟用套件保留 複選框,然後設定下列設定:

    • 每個套件的版本數目上限:您想要保留的每個套件版本數目。

    • 天數,以保留最近下載的套件:只有在套件尚未下載到此處指定的天數時,才會刪除這些套件。

  4. 選取 儲存 完成即可。

    顯示如何設定摘要保留策略的螢幕截圖。

備註

啟用保留原則時,只有在符合下列條件的 時,才會刪除套件版本:

  • 已發行版本的總數達到每個套件的最大版本數量限制
  • 該套件版本尚未在 天指定的時間範圍內下載,以保留最近下載的套件

還原已刪除的套件

已刪除的套件會保留在回收站中 30 天。 在此期間之後,它們會永久刪除。 若要從回收站還原套件,請遵循下列步驟:

  1. 登入您的 Azure DevOps 組織,然後流覽至您的專案。

  2. 選取 [構件],然後選取 [回收站]。

  3. 選取您的套件,然後選取 還原

  4. 再次選取 [還原] 以確認選擇。

    顯示如何還原已刪除套件的螢幕快照。

Q&A

問:取代UnlistYankDelete 套件版本之間的差異為何?

答:淘汰 適用於 npm 套件,Yank 適用於 Cargo 套件,而 Unlist 適用於 NuGet 套件。 您可以從 Azure Artifacts 提要 刪除 任何套件類型(npm、Maven、Python、Cargo 和通用套件)。

  • 取代 (npm):當您取代套件版本時,會將警告訊息新增至套件的元數據。 每當檢視或安裝套件時,Azure Artifacts 和大部分 npm 用戶端都會顯示此警告訊息。

  • 取消列出 (NuGet):取消列出套件版本會將它隱藏在 Azure Artifacts 摘要和 NuGet.org 的搜尋結果中。

  • 標記(套件):將套件版本標記為過時或棄用,藉此阻止其使用,但不會刪除套件。

  • 刪除:刪除套件版本會將它移至回收站,使其無法安裝。 已刪除的套件可以在 30 天內從回收站還原。 在此期間之後,將會永久刪除它們。

問:如何刪除所有套件版本?

答:若要刪除套件的所有版本,請從摘要中選取套件、選取 [版本],然後選取 版本旁的複選框。 這會在摘要中選取該套件的所有版本。 選取 刪除,然後再次選取刪除以確認。

顯示一個螢幕截圖,說明如何從動態消息中刪除所有版本。

問:當我們啟用保留原則時,舊套件或現有套件會有什麼影響?

答:舊套件或現有套件將會被軟刪除並移至回收站。 刪除任務每天執行一次,但由於許多套件湧入,第一次啟用政策後可能會有初始延遲。

套件會在回收站中保留 30 天,然後才會被永久刪除。 若要從可計費記憶體中移除套件,您可以在 30 天的期間結束之前,使用 Web UI 或 REST API 手動刪除這些套件。

問:如果我不想啟用保留原則,該怎麼辦?

答:Azure Artifacts 保留原則的設計目的是協助管理相依性並簡化記憶體成本管理。 如果您選擇不啟用保留原則,則必須視需要手動管理記憶體、監視取用和刪除套件。 Azure Artifacts 為每個組織提供 2 GiB 的免費記憶體,可讓您評估服務是否符合您的工作流程。 超過記憶體限制之後,除非您設定計費並 增加記憶體限制,否則您將無法發佈新的成品

問:刪除儲存項目後,計費的儲存空間需要多久時間才能更新?

答:一般而言,記憶體耗用量應在24小時內更新。 不過,在某些情況下,最多可能需要 48 小時才會反映變更。 貴組織帳單頁面上的工件使用量每天更新一次,而工件儲存頁面則會更頻繁地更新,這可能會導致兩者之間稍有差異。