InftyAI / omnistore

🎯 An unified python client to communicate with various kinds of object-store providers.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

OmniStore

Latest Release

An unified python client to communicate with various kinds of object-store providers.

How to use

Installation

pip install omnistore

Usage

from omnistore.objstore import StoreFactory

# Initialization
client = StoreFactory.new_client(
    provider=<provider>, endpoint=<endpoint>, bucket=<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

Usage:

client = StoreFactory.new_client(
    provider="OSS", endpoint=<endpoint>, bucket=<bucket>
)

Required environment variables:

OSS_ACCESS_KEY_ID=
OSS_ACCESS_KEY_SECRET=

Usage:

client = StoreFactory.new_client(
    provider="MINIO", endpoint=<endpoint>, bucket=<bucket>
)

Required environment variables:

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. Thanks to all these contributors.

About

🎯 An unified python client to communicate with various kinds of object-store providers.

License:MIT License


Languages

Language:Python 97.5%Language:Makefile 2.5%