summaryrefslogtreecommitdiff
path: root/internal/client/output/b2.go
diff options
from:
to:
context:
space:
mode:
authorGravatar SayaAndy <saya.andy@posteo.com> 2026-02-09 06:33:35 +0700
committerGravatar SayaAndy <saya.andy@posteo.com> 2026-02-09 06:33:35 +0700
commitebfe3540c333ae7fa3effb410a20e5764627e307 (patch)
tree543aa1d73463dcd381f732d67b3361dd53a926a0 /internal/client/output/b2.go
parentda672112ebbc25a3fa9f2cf8e37994a7bd1d0e2f (diff)
downloadthumbnail-generator-ebfe3540c333ae7fa3effb410a20e5764627e307.tar.gz
thumbnail-generator-ebfe3540c333ae7fa3effb410a20e5764627e307.zip
feat: add jpeg converter
fix: explicitly set content type for b2 feat: extend rewrite settings with "never overwrite" feat: move rewrite setting to converter config feat: allow to skip size config
Diffstat (limited to 'internal/client/output/b2.go')
-rw-r--r--internal/client/output/b2.go12
1 files changed, 11 insertions, 1 deletions
diff --git a/internal/client/output/b2.go b/internal/client/output/b2.go
index f53532a..0616368 100644
--- a/internal/client/output/b2.go
+++ b/internal/client/output/b2.go
@@ -2,8 +2,10 @@ package output
import (
"context"
+ "encoding/json"
"fmt"
"io"
+ "log/slog"
"github.com/Backblaze/blazer/b2"
"github.com/SayaAndy/saya-today-thumbnail-generator/config"
@@ -37,7 +39,7 @@ func NewB2OutputClient(cfg *config.OutputConfig) (OutputClient, error) {
return &B2OutputClient{b2cl: b2cl, bucket: bucket, prefix: b2cfg.Prefix}, nil
}
-func (c *B2OutputClient) GetWriter(path string, inputMetadata *input.MetadataStruct) (io.WriteCloser, error) {
+func (c *B2OutputClient) GetWriter(path string, inputMetadata *input.MetadataStruct, outputContentType string) (io.WriteCloser, error) {
obj := c.bucket.Object(c.prefix + path)
if obj == nil {
return nil, fmt.Errorf("failed to reference object in B2 bucket")
@@ -45,6 +47,7 @@ func (c *B2OutputClient) GetWriter(path string, inputMetadata *input.MetadataStr
attrs := &b2.Attrs{Info: make(map[string]string)}
attrs.Info["sha1-original"] = inputMetadata.Hash
+ attrs.ContentType = outputContentType
return obj.NewWriter(context.Background(), b2.WithAttrsOption(attrs)), nil
}
@@ -99,5 +102,12 @@ func (c *B2OutputClient) IsMissing(path string) bool {
return true
}
+ attrsJson, _ := json.Marshal(attrs)
+ slog.Debug("got object attrs", slog.String("path", path), slog.String("attrs", string(attrsJson)))
+
+ if attrs.Size == 0 {
+ return true
+ }
+
return attrs.Status == b2.Hider
}