S3 navigation using object, inspired by pathlib.Path
Project description
Installation
pip install pathlibs3
Usage
Create a PathlibS3 Object
from pathlibs3.pathlibs3 import S3Path
# Create a pathlibs3
client = boto3.client("s3", region_name="us-east-1")
bucket = "test-bucket"
# Create an object to s3://test-bucket/myfolder/random_file.txt
s3_path_to_myfolder = S3Path(client, bucket, "myfolder/")
# You can also concatenate object
# Create an object to s3://test-bucket/myfile/random_file.txt
s3_path_to_random_file = s3_path_to_myfolder / "random_file.txt"
Iter over a directory
# Iter over this directory
for path in s3_path.iterdir():
print(path)
# Iter over this directory recursively
for path in s3_path.iterdir():
print(path)
Copy file or folder
Copy from s3 to local
# Create an pathlibs3 object
s3_path_to_myfolder = S3Path(client, bucket, "myfolder/")
# Create a pathlib object
local_path = Path("/tmp/local_folder")
# Will download the s3 folder localy
S3Path.copy(s3_path_to_myfolder, local_path)
Copy from local to s3
# Create an pathlibs3 object
s3_path_to_myfolder = S3Path(client, bucket, "myfolder/")
# Create a pathlib object
local_path = Path("/tmp/local_folder")
# Will download the s3 folder localy
S3Path.copy(local_path, s3_path_to_myfolder)
Copy from s3 to s3
# Create an pathlibs3 object
s3_path_to_myfolder = S3Path(client, bucket, "myfolder/")
# Create another pathlibs3 object
s3_path_to_anotherfolder = S3Path(client, bucket, "anotherfolder/")
# Will download the s3 folder localy
S3Path.copy(s3_path_to_myfolder, s3_path_to_anotherfolder)
How pathlibS3 distinguish file from folder
:warning: PathlibS3 will distinguish folder from file using this simple rule: if a path end with "/" then it is a folder, if not it is a file.
run test
run test with poetry run python -m pytest
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
pathlibs3-0.2.9.tar.gz
(2.8 kB
view hashes)
Built Distribution
Close
Hashes for pathlibs3-0.2.9-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3cd708c90804df78fbffcc0b6301a707e1775f967841589add54c3ceb01703d2 |
|
MD5 | 17f7cb034bda59504bcc523f0370f11a |
|
BLAKE2b-256 | 03ddc9e3221f5ac256c7505ba913892f825e69e9a6109294fb8adfa489bbfafb |