mirror of
https://github.com/Luzifer/cloudbox.git
synced 2024-12-22 10:41:19 +00:00
Allow specifying default ACL through parameters
Signed-off-by: Knut Ahlers <knut@ahlers.me>
This commit is contained in:
parent
ec3cd88486
commit
5cf68673a3
1 changed files with 12 additions and 4 deletions
|
@ -23,6 +23,7 @@ import (
|
|||
type Provider struct {
|
||||
bucket string
|
||||
bucketRegion string
|
||||
defaultACL string
|
||||
s3 *s3.S3
|
||||
}
|
||||
|
||||
|
@ -51,11 +52,18 @@ func New(uri string) (providers.CloudProvider, error) {
|
|||
sess := session.Must(session.NewSession(cfg))
|
||||
svc := s3.New(sess)
|
||||
|
||||
return &Provider{
|
||||
p := &Provider{
|
||||
bucket: u.Host,
|
||||
bucketRegion: region,
|
||||
defaultACL: s3.ObjectCannedACLPrivate,
|
||||
s3: svc,
|
||||
}, nil
|
||||
}
|
||||
|
||||
if acl := u.Query().Get("acl"); acl == s3.ObjectCannedACLPublicRead || acl == s3.ObjectCannedACLPrivate {
|
||||
p.defaultACL = acl
|
||||
}
|
||||
|
||||
return p, nil
|
||||
}
|
||||
|
||||
func (p *Provider) Capabilities() providers.Capability {
|
||||
|
@ -161,7 +169,7 @@ func (p *Provider) getFileACL(relativeName string) string {
|
|||
})
|
||||
|
||||
if err != nil {
|
||||
return s3.ObjectCannedACLPrivate
|
||||
return p.defaultACL
|
||||
}
|
||||
|
||||
for _, g := range objACL.Grants {
|
||||
|
@ -173,5 +181,5 @@ func (p *Provider) getFileACL(relativeName string) string {
|
|||
}
|
||||
}
|
||||
|
||||
return s3.ObjectCannedACLPrivate
|
||||
return p.defaultACL
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue