diff options
| author | 2025-08-24 21:03:10 +0700 | |
|---|---|---|
| committer | 2025-08-24 21:03:10 +0700 | |
| commit | 8e8b3cc5238693151978f5eefa2b6fac63adc50a (patch) | |
| tree | 29bbadcee4b66e8dfa60bab3fe02b3ddf689ae2a /internal | |
| parent | 262a46dc6a0497bf9eea0513345db835c49b06e0 (diff) | |
| download | thumbnail-generator-8e8b3cc5238693151978f5eefa2b6fac63adc50a.tar.gz thumbnail-generator-8e8b3cc5238693151978f5eefa2b6fac63adc50a.zip | |
feat: add local cache
Diffstat (limited to 'internal')
| -rw-r--r-- | internal/client/input/b2.go | 7 | ||||
| -rw-r--r-- | internal/client/input/input_client_interface.go | 1 | ||||
| -rw-r--r-- | internal/client/input/local_unix.go | 4 |
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) } |