Question

How to set spaces ACL to public

Posted November 26, 2019 3k views
DigitalOcean Spaces

So I set up a space with CDN.
When I copy files to it, they become private by default.

So I set the bucket ACL to public read:

aws s3api --endpoint=https://fra1.digitaloceanspaces.com put-bucket-acl --acl public-read --bucket $MYBUCKETNAME

When I read it back it is indeed public:

aws s3api --endpoint=https://fra1.digitaloceanspaces.com get-bucket-acl --bucket $MYBUCKETNAME
{
    "Owner": {
        "DisplayName": "REDACTED", 
        "ID": "REDACTED"
    }, 
    "Grants": [
        {
            "Grantee": {
                "Type": "Group", 
                "URI": "http://acs.amazonaws.com/groups/global/AllUsers"
            }, 
            "Permission": "READ"
        }, 
        {
            "Grantee": {
                "Type": "CanonicalUser", 
                "DisplayName": "REDACTED", 
                "ID": "REDACTED"
            }, 
            "Permission": "FULL_CONTROL"
        }
    ]
}

However, when I copy new files to the bucket, they’re still set to ‘private’. I have to do a recursive set per file, but this takes a long time.

s3cmd setacl s3://$MYBUCKETNAME/ --acl-public --recursive

How can I set the default ACL to public so that new files are public by default?

edited by MattIPv4

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

×
Submit an Answer
1 answer