python binding for using s5cmd to download and upload files to s3 efficiently
Project description
s5cmd-python
python binding for using s5cmd to download and upload files to s3 efficiently
The S5CmdRunner
class provides a Python interface for interacting with s5cmd
, a command-line tool designed for efficient data transfer to and from Amazon S3.
For more information about s5cmd, please refer to the original s5cmd repository.
Features
- Check for the presence of
s5cmd
and download it if necessary. - Execute
s5cmd
commandscp
,mv
, andrun
. - Handle file downloads from URLs and S3 URIs.
- Generate command files for batch operations with
s5cmd
. - Simplify operations like copying and moving files between local paths and S3 URIs.
Installation
To use S5CmdRunner
, ensure that Python 3.10 or higher is installed. The project itself can be installed from pip:
pip install s5cmdpy
or from source:
git clone <repo url>
cd s5cmd-python
pip install -e .
Usage
Here are some examples of how to use the S5CmdRunner
class:
Initialize S5CmdRunner
from s5cmdpy import S5CmdRunner
runner = S5CmdRunner()
Run s5cmd with a Local Command File
# local_txt: `cp s3://dataset-artstation-uw2/artists/__andrey__/1841730##GZGgW.json .`
local_txt_path = "s5cmd_test.txt"
runner.run(local_txt_path)
Run s5cmd with a Command File from S3
# Useful in environments like SageMaker or for reproducibility;
# Extends `s5cmd run something.txt` to support command files stored in S3
txt_s3_uri = "s3://dataset-artstation-uw2/s5cmd_test.txt"
runner.run(txt_s3_uri)
Download Multiple Files from S3
# Input a series of S3 URIs to create the necessary commands.txt for `s5cmd run`,
# then execute `s5cmd run <commands.txt>`
s3_uris = [
's3://dataset-artstation-uw2/artists/__andrey__/1841730##GZGgW.json',
's3://dataset-artstation-uw2/artists/__andrey__/2249992##q5Y22.json'
]
destination_dir = '/home/ubuntu/datasets/s5cmd_test'
runner.download_from_s3_list(s3_uris, destination_dir)
Download a file from internet and upload to S3
cp
command also works with a file from internet:
# Download a file from internet and upload to S3
target_url = "https://huggingface.co/kiriyamaX/mld-caformer/resolve/main/ml_caformer_m36_dec-5-97527.onnx"
dst_s3_uri = "s3://dataset-artstation-uw2/_dev/"
runner.cp(target_url, dst_s3_uri)
License
S5cmd itself is MIT licensed. This project is also MIT licensed.
Project details
Release history Release notifications | RSS feed
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
File details
Details for the file s5cmdpy-0.1.5.tar.gz
.
File metadata
- Download URL: s5cmdpy-0.1.5.tar.gz
- Upload date:
- Size: 4.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4177554cda9e60ee306e136692ccb823a1d2b2e930738eee100b82ad35e1d098 |
|
MD5 | 1e6c6dbe1d751f4695526914ad99d881 |
|
BLAKE2b-256 | 9572e0a6196fa261f6a4169dbd246509b62b3e09ac1805d3156e30def29043dd |
File details
Details for the file s5cmdpy-0.1.5-py3-none-any.whl
.
File metadata
- Download URL: s5cmdpy-0.1.5-py3-none-any.whl
- Upload date:
- Size: 4.9 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 | c1abdc54293a7a7a42fc51b547b8a741d88956eee356a446c31f73e1431940fc |
|
MD5 | e94a9b2eeeaddd739cf99b27197bcd21 |
|
BLAKE2b-256 | 4241349bfecddb06df7b54b38bbeffcda09d8b7b1d84e094eca0b5c66c0a98c0 |