s3psync: A simple tool to sync files and directories to Amazon S3.
Project description
S3 Parallel Sync
This script is used to sync files and folders to an S3 bucket in parallel, leveraging the aws s3 sync command. The aws s3 sync command supports multipart uploads and can utilize up to 10 threads, making it particularly useful when you have a large number of large files to upload. This script allows you to specify the number of parallel instances of aws s3 sync to use.
Requirements
- Python 3.10 or higher (includes pip)
- AWS CLI
- AWS profile with the necessary permissions to perform S3 uploads (see here for more information on how to set up AWS profiles)
- Make utility (Make for Windows, Make for Linux and Mac is usually pre-installed)
Usage
To install the tool, run the following command:
python -m pip install --upgrade pip wheel
python -m pip install s3psync
To sync files and folders to an S3 bucket in parallel, run the following command:
s3psync --help
Usage: s3psync [OPTIONS]
Options:
--version
--aws-profile TEXT AWS profile name [required]
--parent-dir TEXT Parent directory to sync [required]
--s3-bucket TEXT S3 bucket to sync to [required]
--parallel-instances INTEGER Number of parallel instances for aws s3 sync,
default is 1
--help Show this message and exit.
Here is an example of how to use the tool:
s3psync \
--aws-profile tmpuser_for_data_upload \
--s3-bucket premtests1232 \
--parent-dir "/path/to/testdir" \
--parallel-instances 30
Note that you need to have the necessary AWS permissions to perform S3 uploads. The tool will use the AWS CLI to perform the upload, so you need to have the AWS CLI installed and configured with the appropriate credentials. You can use the --aws-profile option to specify the AWS profile to use.
Development
Set up the environment using the provided Makefile. Follow these steps:
- Ensure you have
makeinstalled on your system. You can check this by runningmake --versionin your terminal. Install or updatemakeif needed. - Install the necessary dependencies by running
make installormake all. - Create a Python virtual environment by running
python3 -m venv --prompt s3psync venv. Activate it by runningsource venv/bin/activate. - Verify the installation by running
s3psync --version. If the tool is installed correctly, it should display the version number. - Run the tool for example by running
python -m s3psync --help. - Exit the virtual environment by running
deactivate.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file s3psync-0.0.3.tar.gz.
File metadata
- Download URL: s3psync-0.0.3.tar.gz
- Upload date:
- Size: 7.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
de6f654278ca6881d92593de8a8963272efca6efb4e5bf9abe62c88507c578b9
|
|
| MD5 |
94c61ac2c37876d304f45623c9a2f0fc
|
|
| BLAKE2b-256 |
715f17f05a409d3b092e9367f7e7c50d6fe37b71d29a013430bd1112a2f9f24b
|
File details
Details for the file s3psync-0.0.3-py3-none-any.whl.
File metadata
- Download URL: s3psync-0.0.3-py3-none-any.whl
- Upload date:
- Size: 6.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a9013b97da01cac233883b9bb8904a31fc9b1159f0b52675b8315e00f9763bbd
|
|
| MD5 |
660568e0bb9303d9e236900eff20995b
|
|
| BLAKE2b-256 |
4ad7b77e2d70e64bb5da28036741a46bebe9c25970bf2874b69422b1fa44f228
|