summaryrefslogtreecommitdiff
path: root/internal/storage
diff options
context:
space:
mode:
Diffstat (limited to 'internal/storage')
-rw-r--r--internal/storage/storage.go11
1 files changed, 10 insertions, 1 deletions
diff --git a/internal/storage/storage.go b/internal/storage/storage.go
index 2c47017b3..c513edafd 100644
--- a/internal/storage/storage.go
+++ b/internal/storage/storage.go
@@ -34,6 +34,7 @@ import (
"codeberg.org/gruf/go-cache/v3/ttl"
"codeberg.org/gruf/go-storage"
"codeberg.org/gruf/go-storage/s3"
+ s3cache "codeberg.org/gruf/go-storage/s3/cache"
"github.com/minio/minio-go/v7"
"github.com/minio/minio-go/v7/pkg/credentials"
)
@@ -240,7 +241,14 @@ func NewS3Storage() (*Driver, error) {
bucketLookup = minio.BucketLookupAuto
}
- // Open the s3 storage implementation
+ var objCache s3.EntryCache
+
+ // Check if an S3 object info cache was requested.
+ if cap := config.GetCacheS3ObjectInfo(); cap > 0 {
+ objCache = s3cache.New(0, cap)
+ }
+
+ // Open the s3 storage backend with configuration.
s3, err := s3.Open(endpoint, bucket, &s3.Config{
KeyPrefix: config.GetStorageS3KeyPrefix(),
CoreOpts: minio.Options{
@@ -250,6 +258,7 @@ func NewS3Storage() (*Driver, error) {
},
PutChunkSize: 5 * 1024 * 1024, // 5MiB
ListSize: 200,
+ Cache: objCache,
})
if err != nil {
return nil, fmt.Errorf("error opening s3 storage: %w", err)