MCPcopy Create free account
hub / github.com/astercloud/aster / saveFileData

Method saveFileData

pkg/backends/store_backend.go:353–380  ·  view source on GitHub ↗

saveFileData 保存文件数据到 Store

(ctx context.Context, path string, data *FileData)

Source from the content-addressed store, hash-verified

351
352// saveFileData 保存文件数据到 Store
353func (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 加载所有文件元信息
383func (b *StoreBackend) loadAllFileMeta(ctx context.Context) (map[string]FileMeta, error) {

Callers 2

WriteMethod · 0.95
EditMethod · 0.95

Calls 2

loadAllFileMetaMethod · 0.95
SaveTodosMethod · 0.65

Tested by

no test coverage detected