Python library for interacting with multiple object storage APIs.
Project description
Pilot Platform Storage Manager
Provides a simple and flexible Python library for efficient and reliable object storage solutions. Enables direct interaction with multiple object storage APIs, starting with Azure Blob API and with plans to add more in the future
Getting Started
Manager
import asyncio
from object_storage.factories import get_manager
connection_string = 'DefaultEndpointsProtocol=https;AccountName=pilot;AccountKey=any;EndpointSuffix=core.windows.net'
azr_manager = get_manager('azure', connection_string)
account_sas = asyncio.run(azr_manager.get_container_sas('test'))
print(blob_sas)
> 'https://pilot.blob.core.windows.net/test/file.txt?sp=rw&st=2023-04-28T15:15:14Z&se=2023-04-28T23:15:14Z&spr=https&sv=2021-12-02&sr=b&sig=account_signature'
blob_sas = asyncio.run(azr_manager.get_blob_sas('test', 'small.txt'))
print(blob_sas)
> 'https://pilot.blob.core.windows.net/test/file.txt?sp=rw&st=2023-04-28T15:15:14Z&se=2023-04-28T23:15:14Z&spr=https&sv=2021-12-02&sr=b&sig=blob_signature'
blobs_list = asyncio.run(azr_manager.list_objects('test'))
print(blobs_list)
> [<class 'azure.storage.blob._models.BlobProperties'>, ...]
blobs_list = asyncio.run(azr_manager.create_container('test'))
File Client
import asyncio
from object_storage.factories import get_file_client
blob_sas_url = 'https://pilot.blob.core.windows.net/test/file.txt?sp=rw&st=2023-04-28T15:15:14Z&se=2023-04-28T23:15:14Z&spr=https&sv=2021-12-02&sr=b&sig=account_signature'
azr_file_client = get_file_client('azure', blob_sas_url)
asyncio.run(azr_file_client.upload_file('./small.txt'))
Container Client
import asyncio
from object_storage.factories import get_container_client
container_sas_url = 'https://pilot.blob.core.windows.net/test?sp=rw&st=2023-04-28T15:15:14Z&se=2023-04-28T23:15:14Z&spr=https&sv=2021-12-02&sr=b&sig=account_signature'
azr_container_client = get_container_client('azure', container_sas_url)
asyncio.run(azr_container_client.upload_file('small.txt', './small.txt'))
Installation & Quick Start
The latest version of the object-storage package is available on PyPi and can be installed into another service via Pip.
Pip install from PyPi:
pip install pilot-platform-object-storage
In pyproject.toml
:
pilot-platform-object-storage = "^<VERSION>"
Pip install from a local .whl
file:
pip install pilot_platform_object_storage-<VERSION>-py3-none-any.whl
Documentation
API Reference and User Guide available at pilotdataplatform.github.io/object-storage
Contribution
You can contribute the project in following ways:
- Report a bug.
- Suggest a feature.
- Open a pull request for fixing issues or adding functionality. Please consider using pre-commit in this case.
- For general guidelines on how to contribute to the project, please take a look at the contribution guide.
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 pilot_platform_object_storage-1.6.0.tar.gz
.
File metadata
- Download URL: pilot_platform_object_storage-1.6.0.tar.gz
- Upload date:
- Size: 10.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 549b5b20ba5f83ac75ffac3fc46c8d03ffd193c652a66707e9c8bfeef848d151 |
|
MD5 | 66e07508c17d1878b964262cebf27fc1 |
|
BLAKE2b-256 | 1793d9971b59681240fa3600736ed6269b652e8c6b0fba02368103d97890c1c3 |
File details
Details for the file pilot_platform_object_storage-1.6.0-py3-none-any.whl
.
File metadata
- Download URL: pilot_platform_object_storage-1.6.0-py3-none-any.whl
- Upload date:
- Size: 15.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 62d2cf1abc772f96b2b4777bc80290a5a5e26717dde5062f6ffadecd644b3012 |
|
MD5 | d109ca6d1a61ffbd639ddfe6fe0f2a0c |
|
BLAKE2b-256 | 9976d1990c745eca3132a97a0afe32dce1909cc0ffbde33fc6bd02141559a810 |