diff options
Diffstat (limited to 'workhorse/internal/upload/object_storage_preparer.go')
-rw-r--r-- | workhorse/internal/upload/object_storage_preparer.go | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/workhorse/internal/upload/object_storage_preparer.go b/workhorse/internal/upload/object_storage_preparer.go new file mode 100644 index 00000000000..7a113fae80a --- /dev/null +++ b/workhorse/internal/upload/object_storage_preparer.go @@ -0,0 +1,28 @@ +package upload + +import ( + "gitlab.com/gitlab-org/gitlab-workhorse/internal/api" + "gitlab.com/gitlab-org/gitlab-workhorse/internal/config" + "gitlab.com/gitlab-org/gitlab-workhorse/internal/filestore" +) + +type ObjectStoragePreparer struct { + config config.ObjectStorageConfig + credentials config.ObjectStorageCredentials +} + +func NewObjectStoragePreparer(c config.Config) Preparer { + return &ObjectStoragePreparer{credentials: c.ObjectStorageCredentials, config: c.ObjectStorageConfig} +} + +func (p *ObjectStoragePreparer) Prepare(a *api.Response) (*filestore.SaveFileOpts, Verifier, error) { + opts, err := filestore.GetOpts(a) + if err != nil { + return nil, nil, err + } + + opts.ObjectStorageConfig.URLMux = p.config.URLMux + opts.ObjectStorageConfig.S3Credentials = p.credentials.S3Credentials + + return opts, nil, nil +} |