Uploads websites to Amazon Web Services S3 buckets


Keywords
amazon-web-services, aws-s3, python, websites
License
MIT
Install
pip install webup==2.0.0

Documentation

WebUp

CircleCI codecov

WebUp is a Python package for uploading websites to Amazon Web Services S3 buckets.

  • Uploads files and subdirectories
  • Multi-threaded for concurrent parallel uploads
  • Sets Cache-Control and Content-Type headers

Full documentation is online at cariad.github.io/webup.

Installation

pip install webup

Usage

To upload a directory with the default configuration:

from webup import upload

upload("./public", "my-bucket")

If the bucket's name is recorded in Systems Manager, pass a parameter name instead of a bucket name:

from webup import upload

upload("./public", ssm_param="/my-platform/buckets/website")

Some content types are baked-in. To add more content types:

from webup import set_content_type, upload

set_content_type(".foo", "application/foo")
upload("./public", "my-bucket")

All files have the Cache-Control value "max-age=60" by default. To configure this:

from webup import set_default_maximum_age, set_maximum_age, upload

# Serve sw.js with Cache-Control "max-age=0":
set_maximum_age(r"^sw\.js$", 0)

# Serve all other JavaScript with Cache-Control "max-age=600":
set_maximum_age(r"^.*\.js$", 600)

# Serve all other files with Cache-Control "max-age=300":
set_default_maximum_age(300)

upload("./public", "my-bucket")

To perform a dry-run:

from webup import upload

upload("./public", "my-bucket", read_only=True)

Full documentation is online at cariad.github.io/webup.

Licence

WebUp is released at github.com/cariad/webup under the MIT Licence.

See LICENSE for more information.

Author

Hello! 👋 I'm Cariad Eccleston and I'm a freelance DevOps and backend engineer. My contact details are available on my personal wiki at cariad.earth.

Please consider supporting my open source projects by sponsoring me on GitHub.