Skip to content
Serverless s3 local plugin.
Branch: master
Clone or download
Latest commit 29981d1 Mar 3, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
example
.eslintrc.yml Adding a option to allow using an existing S3 server Aug 4, 2017
.gitignore
.tern-project
LICENSE
README.md
index.js
package-lock.json
package.json
yarn.lock

README.md

serverless-s3-local

serverless npm version MIT licensed npm downloads dependencies dev-dependencies

serverless-s3-local is a Serverless plugin to run S3 clone in local.
This is aimed to accelerate development of AWS Lambda functions by local testing.
I think it is good to collaborate with serverless-offline.

Installation

npm install serverless-s3-local --save-dev

Example

serverless.yaml

service: serverless-s3-local-example
provider:
  name: aws
  runtime: nodejs4.3
plugins:
  - serverless-s3-local
  - serverless-offline
custom:
# Uncomment only if you want to collaborate with serverless-plugin-additional-stacks
# additionalStacks:
#    permanent:
#      Resources:
#        S3BucketData:
#            Type: AWS::S3::Bucket
#            Properties:
#                BucketName: ${self:service}-data
  s3:
    host: 0.0.0.0
    port: 8000
    directory: /tmp
    # Uncomment the first line only if you want to use cors with specified policy
    # Uncomment the second line only if you don't want to use cors
    # Not uncomment the these lines only if your wanto use cors with default policy
    # cors: relative/path/to/your/cors/policy/xml
    # cors: false
    # Uncomment only if you already have a S3 server running locally
    # noStart: true
resources:
  Resources:
    NewResource:
      Type: AWS::S3::Bucket
      Properties:
        BucketName: local-bucket
functions:
  webhook:
    handler: handler.webhook
    events:
      - http:
        method: GET

handler.js

const AWS = require('aws-sdk');

module.exports.webhook = (event, context, callback) => {
  const S3 = new AWS.S3({
    s3ForcePathStyle: true,
    endpoint: new AWS.Endpoint('http://localhost:8000'),
  });
  S3.putObject({
    Bucket: 'local-bucket',
    Key: '1234',
    Body: new Buffer('abcd')
  }, () => {} );
};

Feature

  • Start local S3 server with specified root directory and port.
  • Create buckets at launching.
  • Support serverless-plugin-additional-stacks
  • Support serverless-webpack
  • Support serverless-plugin-existing-s3
  • Support S3 events.

See also

License

This software is released under the MIT License, see LICENSE.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.