update backend

This commit is contained in:
toom1996
2026-09-20 01:06:13 +08:00
parent f7ae917603
commit b99dc3dca1
115 changed files with 24732 additions and 10842 deletions

View File

@ -8,14 +8,14 @@ import (
"fashionapi/internal/repository"
)
// purgeOrphanImages 清理七牛/本地孤儿图片:仅当某 key 在所有图集/草稿表中
// purgeOrphanImages 清理S4/本地孤儿图片:仅当某 key 在所有图集/草稿表中
// 引用计数归零时才真正删除对象;否则保留(仍有其他图集在用,避免误删)。
//
// 设计要点(为何必须引用计数而非「删库即删七牛」):
// 七牛 key 为 sha1 内容寻址,同一张图跨图集共享同一 key。直接删会误伤其他图集。
// 设计要点(为何必须引用计数而非「删库即删S4」):
// S4 key 为 sha1 内容寻址,同一张图跨图集共享同一 key。直接删会误伤其他图集。
// 另外,删除失败/计数失败一律「保守跳过」——宁可留文件,不冒误删被引用文件的风险。
//
// 参数 del 为 storage.Deleter(七牛或本地实现),由装配点按配置注入。
// 参数 del 为 storage.Deleter(S4或本地实现),由装配点按配置注入。
func purgeOrphanImages(ctx context.Context, media repository.MediaRepository, del storage.Deleter, keys []string) {
seen := make(map[string]struct{}, len(keys))
for _, k := range keys {
@ -37,7 +37,7 @@ func purgeOrphanImages(ctx context.Context, media repository.MediaRepository, de
continue
}
if err := del.Delete(ctx, k); err != nil {
log.Printf("[purge] 七牛/本地删除失败,保留 key=%s: %v", k, err)
log.Printf("[purge] S4/本地删除失败,保留 key=%s: %v", k, err)
continue
}
log.Printf("[purge] 已清理孤儿图片 key=%s", k)