update backend
This commit is contained in:
@ -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)
|
||||
|
||||
Reference in New Issue
Block a user