store: implement s3 blob store (#2005)

This commit is contained in:
ben-toogood
2020-09-15 17:09:40 +01:00
committed by GitHub
parent d5bfa1e795
commit 35349bd313
10 changed files with 348 additions and 11 deletions

42
store/s3/options.go Normal file
View File

@@ -0,0 +1,42 @@
package s3
// Options used to configure the s3 blob store
type Options struct {
Endpoint string
Region string
AccessKeyID string
SecretAccessKey string
Secure bool
}
// Option configures one or more options
type Option func(o *Options)
// Endpoint sets the endpoint option
func Endpoint(e string) Option {
return func(o *Options) {
o.Endpoint = e
}
}
// Region sets the region option
func Region(r string) Option {
return func(o *Options) {
o.Region = r
}
}
// Credentials sets the AccessKeyID and SecretAccessKey options
func Credentials(id, secret string) Option {
return func(o *Options) {
o.AccessKeyID = id
o.SecretAccessKey = secret
}
}
// Insecure sets the secure option to false. It is enabled by default.
func Insecure() Option {
return func(o *Options) {
o.Secure = false
}
}