func NewFilesStore()

in pkg/files/store/store.go [26:54]


func NewFilesStore(ctx context.Context, r routing.Router, fileCachePath string) (FilesStore, error) {
	fs := &store{
		metricsRecorder: metrics.FromContext(ctx),
		cache:           cache.NewCache(ctx, int64(files.CacheBlockSize), fileCachePath),
		prefetchChan:    make(chan prefetchableSegment, PrefetchWorkers),
		prefetchable:    PrefetchWorkers > 0,
		router:          r,
		resolveRetries:  ResolveRetries,
		resolveTimeout:  ResolveTimeout,
		blobsChan:       make(chan string, 1000),
		parser:          urlparser.New(),
	}

	go func() {
		<-ctx.Done()
		err := r.Close()
		l := zerolog.Ctx(ctx).Debug()
		if err != nil {
			l = zerolog.Ctx(ctx).Error().Err(err)
		}
		l.Msg("router close")
	}()

	for i := 0; i < PrefetchWorkers; i++ {
		go fs.prefetch()
	}

	return fs, nil
}