s3autocp
s3autocp is a Python script designed to automate the process of copying local directories to Amazon S3 with appropriate Content-Type headers and optional compression. This script is especially useful for deploying static assets, applying suitable MIME types, and ensuring efficient transfer and storage with Brotli and Gzip compression.
Features
- Content-Type Guessing: Automatically determines the Content-Type for files based on their extensions.
- Compression: Compresses eligible files using Brotli and Gzip for optimized storage and transfer.
- S3 Upload: Efficiently uploads files to a specified S3 bucket, setting appropriate headers like Cache-Control.
- Command-Line Interface: Easy-to-use CLI for specifying source directory and destination S3 URL.
Requirements
- Python 3.9
boto3librarybrotlilibrary- AWS credentials configured (typically via environment variables or AWS CLI)
Installation
Make sure you have Python 3 installed. Then, install the required dependencies:
pip install s3autocp
Development
pip install boto3 brotli
Usage
s3autocp [-c/--compress] <source_directory> <destination_s3_url>
-c/--compress: Enable compression for appropriate file types<source_directory>: The local directory you wish to copy to S3.<destination_s3_url>: The S3 URL where files will be uploaded, in the formats3://bucket-name/path.
Example
s3autocp ./my-local-dir s3://my-bucket/my-path
This command will copy all files from ./my-local-dir to the S3 bucket my-bucket under the my-path directory.
How It Works
- The script scans the source directory recursively for files.
- Determines the MIME type for each file.
- If you are using the
-c/--compress-flag, compresses eligible files using Brotli and Gzip. - Uploads files to the specified S3 bucket with appropriate Content-Type and Cache-Control headers.
Contributing
Contributions, issues, and feature requests are welcome. Feel free to check issues page if you want to contribute.
License
Distributed under the Apache License. See LICENSE for more information.
Metadata
Release files for s3autocp 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| s3autocp-0.4.0.tar.gz | 10.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| s3autocp-0.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 20.7 kB
Release files / s3autocp-0.4.0.tar.gz
| Download URL | s3autocp-0.4.0.tar.gz |
|---|---|
| Size | 10.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
001c09d2560ba8dd06dd62514108a9b456372e21b41fdc777606b73b21721005
|
|
BLAKE2b-256 checksum How to use checksums |
4de1753aa007f0df7cb9b0e723c314190748c572389061474a5a0c234183f250
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.4
|
Release files / s3autocp-0.4.0-py3-none-any.whl
| Download URL | s3autocp-0.4.0-py3-none-any.whl |
|---|---|
| Size | 10.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2889ab932e398dc4e28e5abb9acfed63e022aca676881c90232d5ea552f11c96
|
|
BLAKE2b-256 checksum How to use checksums |
23fc804fd3634728bdfe5ed7d619e0e240d023d446f623414404f893164af3f6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.4
|