@sls-next/aws-s3
v3.7.0
Published
Instantly deploy and manage your S3 buckets with [Serverless Components](https://github.com/serverless/components). Supports acceleration as well as file & directory uploads.
Downloads
15,214
Readme
aws-s3
Instantly deploy and manage your S3 buckets with Serverless Components. Supports acceleration as well as file & directory uploads.
1. Install
$ npm install -g serverless
2. Create
Just create a serverless.yml
file
$ touch serverless.yml
$ touch .env # your AWS api keys
# .env
AWS_ACCESS_KEY_ID=XXX
AWS_SECRET_ACCESS_KEY=XXX
3. Configure
# serverless.yml
myBucket:
component: "@serverless/aws-s3"
inputs:
accelerated: false # default is true. Enables upload acceleartion for the bucket
region: us-east-1
cors:
CORSRules:
- AllowedHeaders:
- "*"
AllowedMethods:
- PUT
- POST
- DELETE
AllowedOrigins:
- http://www.example.com
MaxAgeSeconds: 3000
4. Deploy
$ serverless
5. Upload
If you're using this component programmatically within another component, you could also easily upload files and/or directories to your bucket.
const bucket = await this.load("@serverless/aws-s3");
// deploy
await bucket({
accelerated: true
});
// upload directory
await bucket.upload({ dir: "./my-files" });
// upload file
await bucket.upload({ file: "./my-file.txt" });
Cache-control headers can also be set:
// upload directory, setting cache-control headers
await bucket.upload({ dir: "./my-files", cacheControl: "max-age=86400" });
// upload file, setting cache-control header
await bucket.upload({ file: "./my-file.txt", cacheControl: "max-age=86400" });
For a full example on how this component could be used, take a look at how the website component is using it.
New to Components?
Checkout the Serverless Components repo for more information.