1
0
Fork 0
mirror of https://github.com/anyproto/anytype-heart.git synced 2025-06-11 10:18:28 +09:00

GO-1306: Sync files on reindex

This commit is contained in:
Sergey 2023-04-25 18:17:59 +02:00 committed by Mikhail Iudin
parent e4ee7927f5
commit b213e160df
No known key found for this signature in database
GPG key ID: FAAAA8BAABDFF1C0
3 changed files with 21 additions and 18 deletions

View file

@ -139,7 +139,7 @@ func Bootstrap(a *app.App, components ...app.Component) {
fileService := files.New(fileSyncStatusWatcher)
indexerService := indexer.New(blockService, spaceService, fileSyncStatusWatcher)
indexerService := indexer.New(blockService, spaceService, fileService)
a.Register(clientds.New()).
Register(nodeconfsource.New()).

View file

@ -59,6 +59,7 @@ type Service interface {
ImageAdd(ctx context.Context, options ...AddOption) (Image, error)
ImageByHash(ctx context.Context, hash string) (Image, error)
StoreFileKeys(fileKeys ...FileKeys) error
AddToSyncQueue(fileID string) error
app.Component
}
@ -373,7 +374,7 @@ func (s *service) fileIndexData(ctx context.Context, inode ipld.Node, data strin
// fileIndexNode walks a file node, indexing file links
func (s *service) fileIndexNode(ctx context.Context, inode ipld.Node, fileID string) error {
if err := s.addToSyncQueue(fileID); err != nil {
if err := s.AddToSyncQueue(fileID); err != nil {
return fmt.Errorf("add file %s to sync queue: %w", fileID, err)
}
@ -758,7 +759,7 @@ func (s *service) fileBuildDirectory(ctx context.Context, reader io.ReadSeeker,
}
func (s *service) fileIndexInfo(ctx context.Context, hash string, updateIfExists bool) ([]*storage.FileInfo, error) {
if err := s.addToSyncQueue(hash); err != nil {
if err := s.AddToSyncQueue(hash); err != nil {
return nil, fmt.Errorf("add file %s to sync queue: %w", hash, err)
}
@ -815,7 +816,7 @@ func (s *service) fileIndexInfo(ctx context.Context, hash string, updateIfExists
return files, nil
}
func (s *service) addToSyncQueue(fileID string) error {
func (s *service) AddToSyncQueue(fileID string) error {
spaceID := s.spaceService.AccountId()
if err := s.fileSync.AddFile(spaceID, fileID); err != nil {

View file

@ -19,7 +19,7 @@ import (
"github.com/anytypeio/go-anytype-middleware/core/block/editor"
smartblock2 "github.com/anytypeio/go-anytype-middleware/core/block/editor/smartblock"
"github.com/anytypeio/go-anytype-middleware/core/block/source"
"github.com/anytypeio/go-anytype-middleware/core/filestorage/filesync/filesyncstatus"
"github.com/anytypeio/go-anytype-middleware/core/files"
"github.com/anytypeio/go-anytype-middleware/core/relation/relationutils"
"github.com/anytypeio/go-anytype-middleware/metrics"
"github.com/anytypeio/go-anytype-middleware/pkg/lib/bundle"
@ -68,12 +68,12 @@ var (
func New(
picker block.Picker,
spaceService space.Service,
fileSyncStatusWatcher filesyncstatus.StatusWatcher,
fileService files.Service,
) Indexer {
return &indexer{
picker: picker,
spaceService: spaceService,
fileSyncStatusWatcher: fileSyncStatusWatcher,
picker: picker,
spaceService: spaceService,
fileService: fileService,
}
}
@ -92,14 +92,14 @@ type subObjectCreator interface {
}
type indexer struct {
store objectstore.ObjectStore
fileStore filestore.FileStore
anytype core.Service
source source.Service
picker block.Picker
ftsearch ftsearch.FTSearch
subObjectCreator subObjectCreator
fileSyncStatusWatcher filesyncstatus.StatusWatcher
store objectstore.ObjectStore
fileStore filestore.FileStore
anytype core.Service
source source.Service
picker block.Picker
ftsearch ftsearch.FTSearch
subObjectCreator subObjectCreator
fileService files.Service
quit chan struct{}
mu sync.Mutex
@ -437,7 +437,9 @@ func (i *indexer) reindex(ctx context.Context, flags reindexFlags) (err error) {
}
fileIDs, err := i.getIdsForTypes(smartblock.SmartBlockTypeFile)
for _, fileID := range fileIDs {
i.fileSyncStatusWatcher.Watch(i.spaceService.AccountId(), fileID)
if addErr := i.fileService.AddToSyncQueue(fileID); addErr != nil {
log.Errorf("failed to add file %s to sync queue: %s", fileID, addErr.Error())
}
}
if err != nil {
return fmt.Errorf("get all file ids: %w", err)