saveFileData 保存文件数据到 Store
(ctx context.Context, path string, data *FileData)
| 351 | |
| 352 | // saveFileData 保存文件数据到 Store |
| 353 | func (b *StoreBackend) saveFileData(ctx context.Context, path string, data *FileData) error { |
| 354 | dataKey := fmt.Sprintf("%s:data:%s", b.namespace, path) |
| 355 | |
| 356 | // 保存文件数据 |
| 357 | if err := b.store.SaveTodos(ctx, dataKey, data); err != nil { |
| 358 | return err |
| 359 | } |
| 360 | |
| 361 | // 更新文件元信息索引 |
| 362 | metaKey := b.namespace + ":meta" |
| 363 | allMeta, _ := b.loadAllFileMeta(ctx) |
| 364 | if allMeta == nil { |
| 365 | allMeta = make(map[string]FileMeta) |
| 366 | } |
| 367 | |
| 368 | size := int64(0) |
| 369 | for _, line := range data.Lines { |
| 370 | size += int64(len(line) + 1) |
| 371 | } |
| 372 | |
| 373 | allMeta[path] = FileMeta{ |
| 374 | Size: size, |
| 375 | CreatedAt: data.CreatedAt, |
| 376 | ModifiedAt: data.ModifiedAt, |
| 377 | } |
| 378 | |
| 379 | return b.store.SaveTodos(ctx, metaKey, allMeta) |
| 380 | } |
| 381 | |
| 382 | // loadAllFileMeta 加载所有文件元信息 |
| 383 | func (b *StoreBackend) loadAllFileMeta(ctx context.Context) (map[string]FileMeta, error) { |
no test coverage detected