Skip to main content

cloud object storage wrapper

Project description

wareroom

cloud object storage wrapper

Usage

pip install wareroom

set cloud storage credentials in config file

[obs]
access_key_id = "xxxx"
secret_access_key = "xxxx"
endpoint="https://obs.cn-north-4.myhuaweicloud.com"
bucket="image"

replace access_key_id and secret_access_key with your own credentials

from wareroom import Client

import tomllib


def read_config(filepath, kind='storage'):
    """Read storage config from toml file.
    
    :param filepath: path to config file
    :type filepath: str
    
    :param kind: kind of config, default is storage
    :type kind: str
    
    :return: return config keys
    :rtype: tuple, (str, str, str, str): access_id, secret_key, endpoint, bucket.
    """
    with open(filepath, "rb") as f:
        config = tomllib.load(f)

        access_key_id = config["storage"]["access_key_id"]
        secret_access_key = config["storage"]["secret_access_key"]
        endpoint = config["storage"]["endpoint"]
        bucket = config["storage"]["bucket"]
        return access_key_id, secret_access_key, endpoint, bucket

config_file = "config.toml"

# read access key from config file
access_key_id, secret_access_key, endpoint, bucket = read_config(config_file)

# create client
client = Client(access_key_id, secret_access_key, endpoint, bucket)

# upload file
filename = "test.jpg"
bucket = "image"

with open(filename, "rb") as file:
    result, content = client.add(bucket, filename, "image/jpeg", file)

# download file
result, content, buffer = client.get(bucket, filename)

# delete file
result, content = client.delete(bucket, filename)

api

read_config

read cloud storage credentials from config file

Read obs config from toml file.

Args:
    filepath (str): toml config file path.
    kind (str): config kind, only obs now.
Returns:
    (str, str, str, str): access_id, secret_key, endpoint, bucket.

Client.add

upload file to cloud storage

if upload success, return True and url, else return False and reason

Args:
    bucket (str): OBS bucket name.
    filename (str): filename.
    content_type (str): image MIME type / media type e.g. image/png or text/markdown.
    file (File) :  A SpooledTemporaryFile (a file-like object).
    This is the actual Python file that you can pass directly to other functions
    or libraries that expect a "file-like" object.

Returns:
    (bool, str): (True/False, url/reason)

Client.get

download file from cloud storage

if download success, return True, content type, file buffer, else return False ,reason and ""

Args:
    bucket (str): OBS bucket name.
    filename (str): filename.

Returns:
    (bool, str, File): (True/False, reason, file buffer)

    Args:
        bucket (str): OBS bucket name.
        filename (str): filename
    
    Returns:
        (bool, str, str): (True/False, content_type/reason, buffer/"")

Client.delete

delete file from cloud storage

if delete success, return True and success message, else return False and reason

    Args:
        bucket (str): OBS bucket name.
        filename (str): filename
    Returns:
        (bool, str): (True/False, message/reason)

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

wareroom-0.0.7.tar.gz (28.5 kB view details)

Uploaded Source

Built Distribution

wareroom-0.0.7-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

File details

Details for the file wareroom-0.0.7.tar.gz.

File metadata

  • Download URL: wareroom-0.0.7.tar.gz
  • Upload date:
  • Size: 28.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.1

File hashes

Hashes for wareroom-0.0.7.tar.gz
Algorithm Hash digest
SHA256 b98f11a476290b70168b395e62c1cb939498d6517e55f77c6a53ae95a2549d13
MD5 b3acd5809dc172f34a2253ae4be13248
BLAKE2b-256 1761a66b9addbb84cb12cf7a6338dc168b5d0ae09c0712610153b63a6e59e2be

See more details on using hashes here.

File details

Details for the file wareroom-0.0.7-py3-none-any.whl.

File metadata

  • Download URL: wareroom-0.0.7-py3-none-any.whl
  • Upload date:
  • Size: 10.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.1

File hashes

Hashes for wareroom-0.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 3f0dbcf1cc6de251940e737cfbf9629d30005540f62eaec62a29e055e0902783
MD5 5b88aff02a70268a1e9d7336bbfd0f1f
BLAKE2b-256 7bf30aa7ba16761102f00974a138d3d9a5f0a3271771048e737e62175191acdf

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page