in lib/store/ca_download_store.go [38:74]
func NewCADownloadStore(config CADownloadStoreConfig, stats tally.Scope) (*CADownloadStore, error) {
stats = stats.Tagged(map[string]string{
"module": "cadownloadstore",
})
for _, dir := range []string{config.DownloadDir, config.CacheDir} {
if err := os.MkdirAll(dir, 0775); err != nil {
return nil, fmt.Errorf("mkdir %s: %s", dir, err)
}
}
backend := base.NewCASFileStore(clock.New())
downloadState := base.NewFileState(config.DownloadDir)
cacheState := base.NewFileState(config.CacheDir)
cleanup, err := newCleanupManager(clock.New(), stats)
if err != nil {
return nil, fmt.Errorf("new cleanup manager: %s", err)
}
cleanup.addJob(
"download",
config.DownloadCleanup,
backend.NewFileOp().AcceptState(downloadState))
cleanup.addJob(
"cache",
config.CacheCleanup,
backend.NewFileOp().AcceptState(cacheState))
return &CADownloadStore{
backend: backend,
downloadState: downloadState,
cacheState: cacheState,
cleanup: cleanup,
readPartSize: config.ReadPartSize,
writePartSize: config.WritePartSize,
}, nil
}