summaryrefslogtreecommitdiff
path: root/internal/client
diff options
from:
to:
context:
space:
mode:
authorGravatar SayaAndy <saya.andy@posteo.com> 2025-08-24 21:03:10 +0700
committerGravatar SayaAndy <saya.andy@posteo.com> 2025-08-24 21:03:10 +0700
commit8e8b3cc5238693151978f5eefa2b6fac63adc50a (patch)
tree29bbadcee4b66e8dfa60bab3fe02b3ddf689ae2a /internal/client
parent262a46dc6a0497bf9eea0513345db835c49b06e0 (diff)
downloadthumbnail-generator-8e8b3cc5238693151978f5eefa2b6fac63adc50a.tar.gz
thumbnail-generator-8e8b3cc5238693151978f5eefa2b6fac63adc50a.zip
feat: add local cache
Diffstat (limited to 'internal/client')
-rw-r--r--internal/client/input/b2.go7
-rw-r--r--internal/client/input/input_client_interface.go1
-rw-r--r--internal/client/input/local_unix.go4
3 files changed, 11 insertions, 1 deletions
diff --git a/internal/client/input/b2.go b/internal/client/input/b2.go
index db68268..fe94333 100644
--- a/internal/client/input/b2.go
+++ b/internal/client/input/b2.go
@@ -16,6 +16,7 @@ var _ InputClient = (*B2InputClient)(nil)
type B2InputClient struct {
prefix string
bucket *b2.Bucket
+ bucketName string
b2cl *b2.Client
knownExtensions []string
}
@@ -36,7 +37,7 @@ func NewB2InputClient(cfg *config.InputConfig) (InputClient, error) {
return nil, err
}
- return &B2InputClient{b2cl: b2cl, bucket: bucket, prefix: b2cfg.Prefix, knownExtensions: cfg.KnownExtensions}, nil
+ return &B2InputClient{b2cl: b2cl, bucket: bucket, bucketName: b2cfg.BucketName, prefix: b2cfg.Prefix, knownExtensions: cfg.KnownExtensions}, nil
}
func (c *B2InputClient) Scan() ([]string, error) {
@@ -120,6 +121,10 @@ func (c *B2InputClient) ReadMetadata(path string) (*MetadataStruct, error) {
return &metadata, nil
}
+func (c *B2InputClient) ID(path string) string {
+ return fmt.Sprintf("b2://%s/%s%s", c.bucketName, c.prefix, path)
+}
+
func (c *B2InputClient) GetReader(path string) (io.ReadCloser, error) {
obj := c.bucket.Object(c.prefix + path)
if obj == nil {
diff --git a/internal/client/input/input_client_interface.go b/internal/client/input/input_client_interface.go
index 4930aa0..a2cf84b 100644
--- a/internal/client/input/input_client_interface.go
+++ b/internal/client/input/input_client_interface.go
@@ -11,6 +11,7 @@ type InputClient interface {
Scan() ([]string, error)
ReadMetadata(string) (*MetadataStruct, error)
GetReader(string) (io.ReadCloser, error)
+ ID(path string) string
}
type MetadataStruct struct {
diff --git a/internal/client/input/local_unix.go b/internal/client/input/local_unix.go
index e509c8b..21b08a9 100644
--- a/internal/client/input/local_unix.go
+++ b/internal/client/input/local_unix.go
@@ -99,6 +99,10 @@ func (c *LocalUnixInputClient) ReadMetadata(path string) (*MetadataStruct, error
}, nil
}
+func (c *LocalUnixInputClient) ID(path string) string {
+ return fmt.Sprintf("local-unix://%s%s", c.path, path)
+}
+
func (c *LocalUnixInputClient) GetReader(path string) (io.ReadCloser, error) {
return os.Open(c.path + path)
}