Strongbox 回收站与制品清理指南:3 步高效释放存储空间
Strongbox 回收站与制品清理指南3 步高效释放存储空间【免费下载链接】strongboxStrongbox is an artifact repository manager.项目地址: https://gitcode.com/gh_mirrors/str/strongboxStrongbox 是一款开源的制品仓库管理器artifact repository manager被许多团队用来集中托管、缓存和分发 Maven、npm、NuGet、PyPI 等格式的构建产物。随着项目不断迭代仓库里会堆积大量废弃版本和过期快照磁盘空间被悄悄占满。Strongbox 回收站机制正是为此设计的删除制品时先送入回收站确认无误后再清空既能防误删又能高效释放存储空间。本文用 3 步带你掌握 Strongbox 回收站与制品清理的完整用法。为什么制品仓库需要一个回收站在没有回收站的传统仓库中一次误删操作就可能让整个团队无法构建。Strongbox 的做法很聪明删除 ≠ 物理清除。当你删除一个制品时Strongbox 会先把它移动到仓库目录下的.trash隐藏目录中源码见strongbox-storage/strongbox-storage-core/src/main/java/org/carlspring/strongbox/storage/repository/RepositoryData.java中的trashEnabled配置。制品此时只是被挪走并没有真正消失随时可以一键恢复。只有当你主动清空回收站磁盘空间才会被真正释放。这套机制带来的好处非常直观️ 防误删删除操作可逆手滑也不怕 可批量定期清空回收站快速回收磁盘⏪ 可恢复发现删错了随时找回制品第 1 步开启回收站功能让删除可反悔回收站功能默认是关闭的需要为仓库显式开启。在仓库配置中设置trashEnabled: true即可repository: id: my-releases type: hosted trashEnabled: true allowsForceDeletion: false这里有两个关键配置项trashEnabled开启后删除操作会把制品送入回收站.trash目录而不是直接清除allowsForceDeletion默认false。如果设为true客户端可以在删除请求中携带强制删除标记绕过回收站直接物理删除空间立刻释放但无法恢复 建议面向团队共用的仓库保持trashEnabled: true、allowsForceDeletion: false把反悔的机会留给每个人。第 2 步清空回收站3 个 API 高效释放存储空间当确认回收站里的制品不再需要时就该倒垃圾了。Strongbox 回收站清理 API 由TrashController提供源码见strongbox-web-core/src/main/java/org/carlspring/strongbox/controllers/TrashController.java核心入口为/api/trash。① 清空单个仓库的回收站curl -u admin:password -X DELETE \ http://localhost:8080/api/trash/storage0/my-releases对应权限MANAGEMENT_DELETE_TRASH② 清空所有仓库的回收站最常用一步到位curl -u admin:password -X DELETE \ http://localhost:8080/api/trash对应权限MANAGEMENT_DELETE_ALL_TRASHES③ 定时自动清理回收站清理逻辑封装在RepositoryManagementServiceImpl的deleteTrash()方法中见strongbox-storage/strongbox-storage-api/src/main/java/org/carlspring/strongbox/services/impl/RepositoryManagementServiceImpl.java你也可以把它接入 Strongbox 的定时任务Cron Job每天凌晨自动清空一次让存储空间始终干净。第 3 步恢复误删制品一键反悔清理前发现还有需要的制品别慌回收站里的东西可以随时恢复。① 恢复某个具体路径的制品curl -u admin:password -X POST \ http://localhost:8080/api/trash/storage0/my-releases/org/foo/bar/1.0/bar-1.0.jar② 恢复某个仓库的全部回收站内容curl -u admin:password -X PUT \ http://localhost:8080/api/trash/storage0/my-releases③ 恢复所有仓库的回收站内容curl -u admin:password -X POST \ http://localhost:8080/api/trash恢复逻辑在RepositoryManagementServiceImpl.undelete()/undeleteTrash()中实现见RepositoryFiles.undelete底层会把制品从.trash目录移回原始位置连目录结构都能完整还原。回收站 API 速查表操作方法路径所需权限清空单仓库回收站DELETE/api/trash/{storageId}/{repositoryId}MANAGEMENT_DELETE_TRASH清空全部回收站DELETE/api/trashMANAGEMENT_DELETE_ALL_TRASHES恢复单个制品POST/api/trash/{storageId}/{repositoryId}/{path}MANAGEMENT_UNDELETE_TRASH恢复单仓库回收站PUT/api/trash/{storageId}/{repositoryId}MANAGEMENT_UNDELETE_TRASH恢复全部回收站POST/api/trashMANAGEMENT_UNDELETE_ALL_TRASHES这些接口的行为在strongbox-web-core/src/test/java/org/carlspring/strongbox/controllers/TrashControllerTest.java中有完整的集成测试覆盖包括开启回收站后删除会进入.trash、强制删除则直接清除等关键场景可放心使用。制品清理最佳实践3 个小建议先恢复、后清空清空回收站前先扫一眼内容确认没有还在用的版本避免误清导致构建失败强制删除要慎用allowsForceDeletion: true只对确无价值的临时快照使用正式制品务必走回收站流程结合定时任务自动清理把清空回收站挂到每日低峰期执行的 Cron Job存储空间管理从此零手工小结Strongbox 回收站机制把删除和释放空间两个动作解耦删除时先进.trash保平安确认后再统一清空换回磁盘。通过本文的 3 步流程——开启回收站、清空回收站、恢复误删制品你就能轻松掌控制品仓库的存储空间再也不用为磁盘告警焦虑了。立即为你的 Strongbox 仓库开启trashEnabled体验安全又高效的制品清理吧【免费下载链接】strongboxStrongbox is an artifact repository manager.项目地址: https://gitcode.com/gh_mirrors/str/strongbox创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考