How to manage storage for TES-based execution (and generally)?

Do we need a storage-access layer (e.g. an abstract class with implementations), e.g. for uploading the workflow configuration file (config.json) and attachment files, retrieving a list of output files after workflow execution, or for uploading Snakemake and WESkit logs to the storage? Please discuss in the comments and also report insights from trial runs.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information