in internal/vfs/zip/vfs.go [65:104]
func New(cfg *config.ZipServing) vfs.VFS {
zipVFS := &zipVFS{
cacheExpirationInterval: cfg.ExpirationInterval,
cacheRefreshInterval: cfg.RefreshInterval,
cacheCleanupInterval: cfg.CleanupInterval,
openTimeout: cfg.OpenTimeout,
httpClient: &http.Client{
Timeout: cfg.HTTPClientTimeout,
Transport: httptransport.NewMeteredRoundTripper(
httptransport.NewTransport(),
"zip_vfs",
metrics.HTTPRangeTraceDuration,
metrics.HTTPRangeRequestDuration,
metrics.HTTPRangeRequestsTotal,
httptransport.DefaultTTFBTimeout,
),
},
archiveCount: new(int64),
}
zipVFS.resetCache()
// TODO: To be removed with https://gitlab.com/gitlab-org/gitlab-pages/-/issues/480
zipVFS.dataOffsetCache = lru.New(
"data-offset",
lru.WithMaxSize(defaultDataOffsetItems),
lru.WithExpirationInterval(defaultDataOffsetExpirationInterval),
lru.WithCachedEntriesMetric(metrics.ZipCachedEntries),
lru.WithCachedRequestsMetric(metrics.ZipCacheRequests),
)
zipVFS.readlinkCache = lru.New(
"readlink",
lru.WithMaxSize(defaultReadlinkItems),
lru.WithExpirationInterval(defaultReadlinkExpirationInterval),
lru.WithCachedEntriesMetric(metrics.ZipCachedEntries),
lru.WithCachedRequestsMetric(metrics.ZipCacheRequests),
)
return zipVFS
}