Lightweight S3 client with backblaze support
Project description
from ctypes import pythonapi
___ __ __ _ __ __ _____
/ (_)___ _/ /_ / /__ _____ (_)___ _/ /_ / /_ ____|__ /
/ / / __ `/ __ \/ __/ | /| / / _ \/ / __ `/ __ \/ __/ / ___//_ <
/ / / /_/ / / / / /_ | |/ |/ / __/ / /_/ / / / / /_ (__ )__/ /
/_/_/\__, /_/ /_/\__/ |__/|__/\___/_/\__, /_/ /_/\__/ /____/____/
/____/ /____/
lightweight-s3
Ultra-lightweight S3 client. Memory leakage not implemented yet (unlike boto3)
pip install lightweight-s3
Supports:
- sending existing files
- sending string as zipped json (data sinks)
- Operates within a session refreshed every four hours; be sure to shut down the client when you’re done.
Usage
Create StorageConnectionParameters:from lightweight_s3 import StorageConnectionParameters
storage_connection_parameters = StorageConnectionParameters(
backblaze_access_key_id='access_key_id',
backblaze_secret_access_key='secret_access_key',
backblaze_endpoint_url='endpoint_url',
backblaze_bucket_name='bucket_name'
)
Or just put em into the .env file. Load the .env using load_dotenv()
StorageConnectionParameters() will read all of parameters in format:
BACKBLAZE_ACCESS_KEY_ID=
BACKBLAZE_SECRET_ACCESS_KEY=
BACKBLAZE_ENDPOINT_URL=
BACKBLAZE_BUCKET_NAME=
or
AZURE_BLOB_PARAMETERS_WITH_KEY=
AZURE_CONTAINER_NAME=
then:
load_dotenv(env_path)
storage_connection_parameters = StorageConnectionParameters()
s3_client = S3Client(storage_connection_parameters)
s3_client.upload_existing_file(file_path='C:/JohnnySins/Documents/SomeFile.csv')
s3_client.upload_zipped_jsoned_string(
data='{some_sophisticated_data....}',
file_name='some_csv_name.csv'
)
s3_client.shutdown()
Sample Main
And the final sample main.py would look like:from lightweight_s3 import S3Client, StorageConnectionParameters
if __name__ == '__main__ ':
storage_connection_parameters = StorageConnectionParameters(
backblaze_access_key_id='access_key_id',
backblaze_secret_access_key='secret_access_key',
backblaze_endpoint_url='endpoint_url',
backblaze_bucket_name='bucket_name'
)
"""
Or just put em into the .env file. Load the .env using:
load_dotenv(env_path)
and then read it using:
storage_connection_parameters = StorageConnectionParameters()
"""
s3_client = S3Client(storage_connection_parameters)
s3_client.upload_existing_file(file_path='C:/JohnnySins/Documents/SomeFile.csv')
s3_client.upload_zipped_jsoned_string(
data='some_sophisticated_data....',
file_name='some_csv_name.csv'
)
s3_client.shutdown()
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
lightweight_s3-0.0.5.tar.gz
(6.2 kB
view details)
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 lightweight_s3-0.0.5.tar.gz.
File metadata
- Download URL: lightweight_s3-0.0.5.tar.gz
- Upload date:
- Size: 6.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9ece799242c0fe2a84cef8673bd936c5eaef283c031428c1fbf9604c0586c3cf
|
|
| MD5 |
108b5c1328b57d106495e29d02b68415
|
|
| BLAKE2b-256 |
caea4af76d2937753ff02b1628aa38a816209cc4681d07d6a01793f542040e93
|
File details
Details for the file lightweight_s3-0.0.5-py3-none-any.whl.
File metadata
- Download URL: lightweight_s3-0.0.5-py3-none-any.whl
- Upload date:
- Size: 7.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1d6b7967a2ad24b1f344d61fa1df667c1c2f1ab012ffce8a456c6e8d6b122b9a
|
|
| MD5 |
f8a6fd3aea4b1e340d5a05b3ade3e93a
|
|
| BLAKE2b-256 |
e733675fb3f7fe5797d3f2aabfaadc304c03f2c00f5586f7489f01351018cb14
|