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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | b98f11a476290b70168b395e62c1cb939498d6517e55f77c6a53ae95a2549d13 |
|
MD5 | b3acd5809dc172f34a2253ae4be13248 |
|
BLAKE2b-256 | 1761a66b9addbb84cb12cf7a6338dc168b5d0ae09c0712610153b63a6e59e2be |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3f0dbcf1cc6de251940e737cfbf9629d30005540f62eaec62a29e055e0902783 |
|
MD5 | 5b88aff02a70268a1e9d7336bbfd0f1f |
|
BLAKE2b-256 | 7bf30aa7ba16761102f00974a138d3d9a5f0a3271771048e737e62175191acdf |