refactor: rename parameter access to acl (#18)

BREAKING CHANGE: The parameter `access` was renamed to `acl` and the environment variable `PLUGIN_ACCESS` was removed.
This commit is contained in:
Robert Kaussow 2022-05-29 22:36:25 +02:00 committed by GitHub
parent 9e053ce454
commit df7cc521d1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 24 additions and 24 deletions

View File

@ -48,8 +48,8 @@ properties:
type: bool type: bool
required: false required: false
access: acl:
description: Access control settings. description: Access control list.
type: map type: map
required: false required: false

View File

@ -78,9 +78,9 @@ func settingsFlags(settings *plugin.Settings, category string) []cli.Flag {
Category: category, Category: category,
}, },
&cli.GenericFlag{ &cli.GenericFlag{
Name: "access", Name: "acl",
Usage: "access control settings", Usage: "access control list",
EnvVars: []string{"PLUGIN_ACCESS", "PLUGIN_ACL"}, EnvVars: []string{"PLUGIN_ACL"},
Value: &StringMapFlag{}, Value: &StringMapFlag{},
Category: category, Category: category,
}, },

View File

@ -44,7 +44,7 @@ func run(settings *plugin.Settings) cli.ActionFunc {
return func(ctx *cli.Context) error { return func(ctx *cli.Context) error {
urfave.LoggingFromContext(ctx) urfave.LoggingFromContext(ctx)
settings.Access = ctx.Generic("access").(*StringMapFlag).Get() settings.ACL = ctx.Generic("acl").(*StringMapFlag).Get()
settings.CacheControl = ctx.Generic("cache-control").(*StringMapFlag).Get() settings.CacheControl = ctx.Generic("cache-control").(*StringMapFlag).Get()
settings.ContentType = ctx.Generic("content-type").(*StringMapFlag).Get() settings.ContentType = ctx.Generic("content-type").(*StringMapFlag).Get()
settings.ContentEncoding = ctx.Generic("content-encoding").(*StringMapFlag).Get() settings.ContentEncoding = ctx.Generic("content-encoding").(*StringMapFlag).Get()

View File

@ -67,16 +67,16 @@ func (a *AWS) Upload(local, remote string) error {
defer file.Close() defer file.Close()
var access string var acl string
for pattern := range p.settings.Access { for pattern := range p.settings.ACL {
if match := glob.Glob(pattern, local); match { if match := glob.Glob(pattern, local); match {
access = p.settings.Access[pattern] acl = p.settings.ACL[pattern]
break break
} }
} }
if access == "" { if acl == "" {
access = "private" acl = "private"
} }
fileExt := filepath.Ext(local) fileExt := filepath.Ext(local)
@ -128,13 +128,13 @@ func (a *AWS) Upload(local, remote string) error {
return err return err
} }
logrus.Debugf("'%s' not found in bucket, uploading with content-type '%s' and permissions '%s'", local, contentType, access) logrus.Debugf("'%s' not found in bucket, uploading with content-type '%s' and permissions '%s'", local, contentType, acl)
putObject := &s3.PutObjectInput{ putObject := &s3.PutObjectInput{
Bucket: aws.String(p.settings.Bucket), Bucket: aws.String(p.settings.Bucket),
Key: aws.String(remote), Key: aws.String(remote),
Body: file, Body: file,
ContentType: aws.String(contentType), ContentType: aws.String(contentType),
ACL: aws.String(access), ACL: aws.String(acl),
Metadata: metadata, Metadata: metadata,
} }
@ -218,27 +218,27 @@ func (a *AWS) Upload(local, remote string) error {
return err return err
} }
previousAccess := "private" previousACL := "private"
for _, g := range grant.Grants { for _, g := range grant.Grants {
gt := *g.Grantee gt := *g.Grantee
if gt.URI != nil { if gt.URI != nil {
if *gt.URI == "http://acs.amazonaws.com/groups/global/AllUsers" { if *gt.URI == "http://acs.amazonaws.com/groups/global/AllUsers" {
if *g.Permission == "READ" { if *g.Permission == "READ" {
previousAccess = "public-read" previousACL = "public-read"
} else if *g.Permission == "WRITE" { } else if *g.Permission == "WRITE" {
previousAccess = "public-read-write" previousACL = "public-read-write"
} }
} }
if *gt.URI == "http://acs.amazonaws.com/groups/global/AuthenticatedUsers" { if *gt.URI == "http://acs.amazonaws.com/groups/global/AuthenticatedUsers" {
if *g.Permission == "READ" { if *g.Permission == "READ" {
previousAccess = "authenticated-read" previousACL = "authenticated-read"
} }
} }
} }
} }
if previousAccess != access { if previousACL != acl {
logrus.Debugf("permissions for '%s' have changed from '%s' to '%s'", remote, previousAccess, access) logrus.Debugf("permissions for '%s' have changed from '%s' to '%s'", remote, previousACL, acl)
shouldCopy = true shouldCopy = true
} }
} }
@ -248,12 +248,12 @@ func (a *AWS) Upload(local, remote string) error {
return nil return nil
} }
logrus.Debugf("updating metadata for '%s' content-type: '%s', ACL: '%s'", local, contentType, access) logrus.Debugf("updating metadata for '%s' content-type: '%s', ACL: '%s'", local, contentType, acl)
copyObject := &s3.CopyObjectInput{ copyObject := &s3.CopyObjectInput{
Bucket: aws.String(p.settings.Bucket), Bucket: aws.String(p.settings.Bucket),
Key: aws.String(remote), Key: aws.String(remote),
CopySource: aws.String(fmt.Sprintf("%s/%s", p.settings.Bucket, remote)), CopySource: aws.String(fmt.Sprintf("%s/%s", p.settings.Bucket, remote)),
ACL: aws.String(access), ACL: aws.String(acl),
ContentType: aws.String(contentType), ContentType: aws.String(contentType),
Metadata: metadata, Metadata: metadata,
MetadataDirective: aws.String("REPLACE"), MetadataDirective: aws.String("REPLACE"),
@ -281,13 +281,13 @@ func (a *AWS) Upload(local, remote string) error {
return err return err
} }
logrus.Debugf("uploading '%s' with content-type '%s' and permissions '%s'", local, contentType, access) logrus.Debugf("uploading '%s' with content-type '%s' and permissions '%s'", local, contentType, acl)
putObject := &s3.PutObjectInput{ putObject := &s3.PutObjectInput{
Bucket: aws.String(p.settings.Bucket), Bucket: aws.String(p.settings.Bucket),
Key: aws.String(remote), Key: aws.String(remote),
Body: file, Body: file,
ContentType: aws.String(contentType), ContentType: aws.String(contentType),
ACL: aws.String(access), ACL: aws.String(acl),
Metadata: metadata, Metadata: metadata,
} }

View File

@ -19,7 +19,7 @@ type Settings struct {
Source string Source string
Target string Target string
Delete bool Delete bool
Access map[string]string ACL map[string]string
CacheControl map[string]string CacheControl map[string]string
ContentType map[string]string ContentType map[string]string
ContentEncoding map[string]string ContentEncoding map[string]string