Skip to main content

Upload directories to AWS S3

Project description

s3push

Codacy Badge Build Status PyPI version License: MIT

Upload whole directories or distinct files to AWS S3 using s3push in command line. Extensive support for different credential sources.

Project goal

This tool facilitates painless upload of directories to AWS S3. The initial goal was to provide developers with a simple tool that allows them to upload whole directories to S3 with a minimal effort. Initial project vision also contained an option to create and configure a fresh S3-hosted website from scratch.

However, the tool has been written after a very quick research and, as a result, suffered from the "Not invented here" syndrome. After a bit more careful research it was discovered that not only the other directory uploading tools exist, but also that there are far more superior instruments that also allow configuration of buckets and CloudFront CDN (i.e., s3cmd). See the rough feature set comparison in the docs.

As a project's post-mortem, it can be concluded that a proper research must be performed prior to the start of development. For example, before developing a new library or a tool it may be very useful to make a simple feature set comparison.

The project will, however, continue to exist as a demonstration of continuous delivery setup for a python package development. The environment for the project is designed to support fully automated releases and testing.

Installation

Recommended installation method is via Pipenv:

pipenv install s3push

Installing via Pip instead of Pipenv:

pip install s3push

Usage

Publish a directory with default credentials

s3push ~/my-website/ example.com

Publish a file using default credentials

s3push ~/my-website/index.html example.com

Publish with provided key pair

s3push ~/my-website/ example.com -k XXXXXXXXXXXXXXXXXXXX -s xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Publish with saved profile by providing its name

s3push ~/my-website/ example.com -p my-deployment-profile

Note: see all possible options for specifying credentials below.

Priority of credentials providers

  1. Passing credentials as optional arguments: -k AWS_ACCESS_KEY_ID, -s AAWS_SECRET_ACCESS_KEY.
  2. Passing profile name of pre-configured credentials as optional argument: -p PROFILE_NAME.
  3. Environment variables, as listed in the boto3 guide.
  4. Default credentials in the shared credential file (~/.aws/credentials).
  5. Default credentials in the AWS config file (~/.aws/config).
  6. Boto2 config file (/etc/boto.cfg and ~/.boto).

Continuous Delivery

Branch Travis-CI Status CircleCI Status
master Build Status CircleCI
dev Build Status CircleCI

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

s3push-2018.4.11.tar.gz (5.1 kB view details)

Uploaded Source

Built Distribution

s3push-2018.4.11-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

File details

Details for the file s3push-2018.4.11.tar.gz.

File metadata

  • Download URL: s3push-2018.4.11.tar.gz
  • Upload date:
  • Size: 5.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for s3push-2018.4.11.tar.gz
Algorithm Hash digest
SHA256 59eda839c36bef3c305b715cc6fae1aa9ee2d4b8d53a5b0b4155cb9d3fba25cb
MD5 62aaa2c1469a37133d6fcee67edd9a5a
BLAKE2b-256 37356e384cabe0fd2da5c39df11872b813660a8ab90e8f078c1e18bc5c7ca6d2

See more details on using hashes here.

File details

Details for the file s3push-2018.4.11-py3-none-any.whl.

File metadata

File hashes

Hashes for s3push-2018.4.11-py3-none-any.whl
Algorithm Hash digest
SHA256 e45add2edbff568db9cccc1b00c78c5c93a5278d9081422937da04cdb115ed40
MD5 ca1a7cbe685390a977576dfe9e9b403f
BLAKE2b-256 6cd9741b999bb490f4f731f525c6fe4de6d593a7daef69a8387880dfe7ff2a2a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page