An open API service indexing awesome lists of open source software.

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.

Awesome Lists containing this project

README

          

# OmniStore

[![Latest Release](https://img.shields.io/github/v/release/inftyai/omnistore?include_prereleases)](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.