Skip to main content

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)

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.9.tar.gz (28.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: wareroom-0.0.9.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.9.tar.gz
Algorithm Hash digest
SHA256 e9ec99d0a89e3952cc40b3976d04274d67280c29dcad73d2f0f56837468ee95a
MD5 eaab000ef99315468e686d962bba062d
BLAKE2b-256 3cf5446235a4bea79226bc986327cea556609f5880b2ee27254a1aa5b771b5b9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: wareroom-0.0.9-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.9-py3-none-any.whl
Algorithm Hash digest
SHA256 868661b27241e9343aab5919d5dfe1910c2726a8f8dc461ce86484ff2dd6c52d
MD5 fe7c97c45263598e7fd4f912ecc915c8
BLAKE2b-256 d9fcc5ba9ddce6c6336a0340b94bd9e2ec5137f720e88ab59fc709f3fe3131f4

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.0.9 This release

2 files

0.0.8

2 files

0.0.7

2 files

0.0.6

2 files

0.0.5

2 files

0.0.4

2 files

0.0.3

2 files

0.0.2

2 files

0.0.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page