I've kept the signature of the signer as simple as possible. We could always add some other methods with default implementation later.
For now the signer trait is designed in such that it lives for the duration of the server (for simplicity). A major alternative is to have to instantiate a new signer for every request that fetches file actions from storage.
Due to (2) it is a little bit more cumbersome to implement this trait for structs wrapping object_store::signer::Signer (but -of course- it still can be done).
Add an abstraction for creating signed URLs for the datafiles in (cloud) object storage.