https://github.com/inftyai/omnistore
🎯 An unified python client to communicate with various kinds of object-store providers.
https://github.com/inftyai/omnistore
gcs minio object-store oss python s3
Last synced: about 1 year ago
JSON representation
🎯 An unified python client to communicate with various kinds of object-store providers.
- Host: GitHub
- URL: https://github.com/inftyai/omnistore
- Owner: InftyAI
- License: mit
- Created: 2024-08-13T10:46:56.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-11-11T02:36:06.000Z (over 1 year ago)
- Last Synced: 2025-04-12T17:23:34.894Z (about 1 year ago)
- Topics: gcs, minio, object-store, oss, python, s3
- Language: Python
- Homepage:
- Size: 39.1 KB
- Stars: 2
- Watchers: 1
- Forks: 2
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# OmniStore
[](https://github.com/inftyai/omnistore/releases/latest)
An unified python client to communicate with various kinds of object-store providers.
## How to use
### Installation
```cmd
pip install omnistore
```
### Usage
```python
from omnistore.objstore import StoreFactory
# Initialization
client = StoreFactory.new_client(
provider=, endpoint=, bucket=
)
# Create a directory
client.create_dir(dir_name)
# Delete a directory with all its files
client.delete_dir(dir_name)
# Upload
client.upload(src, dest)
# Upload a directory with all its files
client.upload_dir(src_dir, dest_dir)
# Download
client.download(src, dest)
# Download a directory with all its files
client.download_dir(src_dir, dest_dir)
# Exists
client.exists(filename)
# Delete
client.delete(filename)
```
## Supported Providers
### [Alibaba Cloud OSS](https://www.alibabacloud.com/help/en/oss/)
Usage:
```python
client = StoreFactory.new_client(
provider="OSS", endpoint=, bucket=
)
```
Required environment variables:
```yaml
OSS_ACCESS_KEY_ID=
OSS_ACCESS_KEY_SECRET=
```
### [MINIO](https://min.io/)
Usage:
```python
client = StoreFactory.new_client(
provider="MINIO", endpoint=, bucket=
)
```
Required environment variables:
```yaml
MINIO_ACCESS_KEY=
MINIO_SECRET_KEY=
```
## Development
Once you want to run the integration tests, you should have a `.env` file locally, similar to the `.env.example`.
## Contributions
🚀 All kinds of contributions are welcomed ! Please follow [Contributing](./CONTRIBUTING.md). Thanks to all these contributors.