如何降低Azure DevOps包存储用量以回到免费额度?
问题背景
- 公司试点迁移至Azure DevOps,触发包存储免费层阈值,但自研NuGet包均为KB级/低端MB级,此情况不符合预期
- 已执行操作:手动清理旧版自研NuGet包、清空回收站、降低保留策略,但MS文档提及的24-48小时用量下降窗口(含周末)过后,存储占用无任何变化;且工件概览不显示包大小,无法定位大体积包
- 疑问:私有源内大量外部包(如Microsoft.AspNetCore.*)是否占用自有源存储?同事称按设计不占用,但无法确认
- 核心需求:留在免费层,将包存储降至2GiB以内
排查与解决方法
排查跨项目存储占用
检查同一Azure DevOps组织下的所有项目,尤其是前端等非.NET项目——这类项目常通过私有源缓存大量外部依赖包,容易被忽略却占用大量存储。明确外部包计费规则
Azure DevOps私有源中缓存的外部包会占用自有存储并产生计费,并非免费托管。若私有源配置了上游源(如NuGet.org),拉取的外部包会被缓存到自有存储,这部分体积需纳入清理范围。精准定位大体积包
使用Azure DevOps CLI命令查询包存储详情,筛选大体积包:
az artifacts universal list --feed-name <你的源名称> --org <组织URL> --query "[].{Name:name, Size:sizeInBytes}" --output table
也可通过REST API获取包的详细大小信息,快速定位需清理的对象。
- 清理缓存的外部包
- 进入私有源的「上游源」设置,清理缓存的外部包;
- 手动删除不再使用的外部包版本,清空回收站确保存储释放。
后续更新
按上述步骤排查后发现,同组织下另一前端项目占用了大部分存储,且私有源缓存的外部包确实会占用自有存储并计费。该项目已完成清理,预计存储将回到免费层阈值以内。
内容的提问来源于stack exchange,提问作者kbd
相关产品推荐
相关产品推荐

