Storage
The Storage API is responsible for handling object storage. It provides a simple interface for storing, retrieving and removing files.
Basic Usage
The storage interface is simple, and should be used for all storage operations.
from canvas_core import storage
import io
path = "tests/my_file.txt"
# You can work with any file-like object.
obj = io.StringIO()
# Persist a file to the object store at a given path.
storage.save_file(obj, path)
# Open a persisted object like any other file.
with storage.open_object(path, mode="rw") as obj:
    # do something
# Get the signed URL for a persisted object.
storage.get_object_url(path)
# https://s3.amazonaws.com/...
# Delete the persisted object at the given path.
storage.delete_object(path)
# Get a persisted object as a file (but don't forget to close it when you're done!).
file = storage.get_file(path)
# do something
file.close()
# Write bytes to the object at the given path.
storage.write_object(path, b"test string")
# Read the contents of the object at the given path (as bytes)
storage.read_object(path)
# b"test string"
API Reference
- canvas_core.storage.delete_object(path: str | Path) None
- Delete file from storage. 
- canvas_core.storage.generate_upload_path(instance: Model, filename: str) str
- Generates an upload path for stored files. 
- canvas_core.storage.get_object(path: str | Path, mode: str = 'rb') File
- Open file at given path. 
- canvas_core.storage.get_object_url(path: str | Path) str
- Get object url. 
- canvas_core.storage.get_stored_object_model() type[StoredObject]
- Return the StoredObject model. 
- canvas_core.storage.open_object(path: str | Path, mode: str = 'rb') Generator[File, None, None]
- Retrieve stored file object. 
- canvas_core.storage.read_object(path: str | Path) bytes
- Get file contents from file as bytes. 
- canvas_core.storage.save_object(path: str | Path, file: IO | File) str
- Save any file object to storage. - Returns:
- file name 
 
- canvas_core.storage.write_object(path: str | Path, contents: bytes) None
- Write bytes to file.