npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

directory-to-s3

v1.0.0-rc5

Published

CLI to simply upload a directory to Amazon S3

Downloads

900

Readme

directory-to-s3

A CLI to simply upload a directory to Amazon S3.

Usage

Usage:
  directory-to-s3 [options ...] <bucket>

Options:
  -d --directory=DIR      A directory which will be recursively uploaded [default: ./]
  -p --pattern=PATTERN    A glob pattern which will be uploaded
  -P --prefix=PREFIX      An optional prefix to prepend to each file key
  -r --region=REGION      The AWS region the bucket is hosted on [default: us-east-1]
  -a --acl=ACL            The ACL to assign to the uploaded files [default: public-read]
  -v --verbose            Print progress logs to STDOUT [default: false]
  -s --silent             Print no logs ever [default: false]
  -h --help               Show this usage
  --version               Show the version

Examples

Upload the current directory to your bucket:

$ directory-to-s3 my-bucket

Upload another directory to your bucket:

$ directory-to-s3 -d public my-bucket

Upload two directories to your bucket:

$ directory-to-s3 -d public -d tmp my-bucket

Upload files matching a pattern to your bucket:

$ directory-to-s3 -p public/**/*.js my-bucket

Upload files matching a pattern to your bucket with a key-prefix:

$ directory-to-s3 -p public/**/*.js -P scripts/ my-bucket

Install

$ npm install -g directory-to-s3

Or to use it in a node project it can be installed locally:

$ npm install -D directory-to-s3

And then add a deploy npm script like this:

{
  ...
  "scripts": {
    "deploy": "directory-to-s3 -p public/ project-bucket"
  }
  ...
}

AWS Credentials

To use directory-to-s3 it needs some AWS credentials. And since the AWS SDK already provides this in a multitude of ways it's not part of this tool.

But two common ways to provide credentials are:

  1. Environment variables

    $ AWS_ACCESS_KEY_ID=111 AWS_SECRET_ACCESS_KEY=222 directory-to-s3 my-bucket
  2. A credentials file

    # ~/.aws/credentials
    [default]
    aws_access_key_id = 111
    aws_secret_access_key = 222
    
    [project-x]
    aws_access_key_id = 333
    aws_secret_access_key = 444
    $ directory-to-s3 my-default-bucket
    $ AWS_PROFILE=project-x directory-to-s3 my-project-x-bucket