serverless / serverless-client-s3

A plugin to deploy front-end assets to S3 via the Serverless Framework
http://www.serverless.com
171 stars 61 forks source link

Enhancement request: configuration of bucket and static content folder #10

Open karlsburg opened 8 years ago

karlsburg commented 8 years ago

It would be great if there were configuration options available.

karlsburg commented 8 years ago

whilst on configuration, an ignore file list would be useful.

If working on mac - .DSStore will get uploaded by default.

BerndWessels commented 8 years ago

Would be also great if we could configure the buckets properties to setup the permissions and redirection rules and stuff.

eahefnawy commented 8 years ago

You can now specify the deployment bucket. As for the second point, we can add that as an option while keeping client/dist a best practice default.

Thanks for reaching out! 😊

ecoruh commented 8 years ago

what are the minimum set of permissions for sls client deploy to work. I tried this in my policy:

    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBuckets",
                "s3:ListObjects",
                "s3:DeleteObjects",
                "s3:CreateBucket",
                "s3:PutBucketWebsite",
                "s3:PutBucketTagging",
                "s3:PutBucketPolicy",
                "s3:PutObject"
            ],
            "Resource": "*"
        }

but I received this error:

AccessDenied: Access Denied
    at Request.extractError (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/services/s3.js:350:35)
    at Request.callListeners (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/sequential_executor.js:105:20)
...
From previous event:
    at ServerlessProviderAws.request (/usr/local/lib/node_modules/serverless/lib/ProviderAws.js:72:10)
    at ClientDeploy._processDeployment (/home/eric/BuildAgent/work/3a164dd9bff1550c/ucr/node_modules/serverless-client-s3/index.js:134:24)

This line seems to yield Access Denied:

      return _this.aws.request('S3', 'listBuckets', {}, _this.evt.options.stage, _this.evt.options.region)

even though I had listBuckets in my permission list. What am I missing?