From 7c3e9b94b61b71f59959651d8aa64d04161185f3 Mon Sep 17 00:00:00 2001 From: Pierre Guilleminot Date: Fri, 29 Jun 2018 11:39:15 +0200 Subject: [PATCH 1/2] Fix missing prefix for thumbnail swift container --- pkg/instance/instance.go | 2 +- pkg/vfs/vfsswift/thumbs_v2.go | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/pkg/instance/instance.go b/pkg/instance/instance.go index fb12a37ac82..186a00741e8 100644 --- a/pkg/instance/instance.go +++ b/pkg/instance/instance.go @@ -315,7 +315,7 @@ func (i *Instance) ThumbsFS() vfs.Thumbser { return vfsafero.NewThumbsFs(baseFS) case config.SchemeSwift: if i.SwiftCluster > 0 { - return vfsswift.NewThumbsFsV2(config.GetSwiftConnection(), i.Domain) + return vfsswift.NewThumbsFsV2(config.GetSwiftConnection(), i) } return vfsswift.NewThumbsFs(config.GetSwiftConnection(), i.Domain) default: diff --git a/pkg/vfs/vfsswift/thumbs_v2.go b/pkg/vfs/vfsswift/thumbs_v2.go index 4a309e1d6a7..d84d06ad90d 100644 --- a/pkg/vfs/vfsswift/thumbs_v2.go +++ b/pkg/vfs/vfsswift/thumbs_v2.go @@ -8,6 +8,7 @@ import ( "net/http" "time" + "github.com/cozy/cozy-stack/pkg/prefixer" "github.com/cozy/cozy-stack/pkg/vfs" "github.com/cozy/swift" ) @@ -18,8 +19,8 @@ var unixEpochZero = time.Time{} // // This version stores the thumbnails in the same container as the main data // container. -func NewThumbsFsV2(c *swift.Connection, domain string) vfs.Thumbser { - return &thumbsV2{c: c, container: swiftV2ContainerPrefixData + domain} +func NewThumbsFsV2(c *swift.Connection, db prefixer.Prefixer) vfs.Thumbser { + return &thumbsV2{c: c, container: swiftV2ContainerPrefixData + db.DBPrefix()} } type thumbsV2 struct { From 1c868bbc6abc05c6388a028aa4526cf05e32a9a4 Mon Sep 17 00:00:00 2001 From: Pierre Guilleminot Date: Fri, 29 Jun 2018 11:45:19 +0200 Subject: [PATCH 2/2] thumbnails: check that the container exists on error --- pkg/vfs/vfsswift/thumbs_v2.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pkg/vfs/vfsswift/thumbs_v2.go b/pkg/vfs/vfsswift/thumbs_v2.go index d84d06ad90d..3207500bf43 100644 --- a/pkg/vfs/vfsswift/thumbs_v2.go +++ b/pkg/vfs/vfsswift/thumbs_v2.go @@ -59,7 +59,13 @@ func (t *thumbsV2) CreateThumb(img *vfs.FileDoc, format string) (vfs.ThumbFiler, obj, err := t.c.ObjectCreate(t.container, name, false, "", img.Mime, objMeta.ObjectHeaders()) if err != nil { - return nil, err + if _, _, errc := t.c.Container(t.container); errc == swift.ContainerNotFound { + if errc = t.c.ContainerCreate(t.container, nil); errc != nil { + return nil, err + } + } else { + return nil, err + } } th := &thumb{ WriteCloser: obj,