@serverless/aws-s3

4.2.0 • Public • Published

aws-s3

Instantly deploy and manage your S3 buckets with Serverless Components. Supports acceleration as well as file & directory uploads.

 

  1. Install
  2. Create
  3. Configure
  4. Deploy
  5. Upload

 

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.

Readme

Keywords

none

Package Sidebar

Install

npm i @serverless/aws-s3

Weekly Downloads

85,706

Version

4.2.0

License

Apache

Unpacked Size

30.4 kB

Total Files

12

Last publish

Collaborators

  • eahefnawy
  • ac360
  • serverless-main