from abc import ABC, abstractmethod


class StorageBackend(ABC):
    @abstractmethod
    async def put(self, key: str, data: bytes, content_type: str) -> None:
        """Store object at key with given content type."""

    @abstractmethod
    async def get(self, key: str) -> bytes:
        """Return object content as bytes."""

    @abstractmethod
    async def delete(self, key: str) -> None:
        """Delete object at key."""
