Refactor File Service
The file service was initially designed with a basic workflow in mind and didn't cover all the potential use cases that would benefit from having a dedicated file interface to the provider platform. In order to expand the file service features, we propose having a design session with a better alignment with its intended use and supporting more scalable scenarios:
Here are a few suggestion:
- decouple the getLocation from the put file operations
- distinguish landing zone operations from file operations
- rename API calls to be more functionally significant
- add a put file operation so that applications can iterate or parallelize
- support no-database implementation for providers that can retrieve meta-data from the Blob (ex, POSIX-like)
- support POSIX interop (to be discussed)
- add a create "container" operation to allow the following flow
-
create container, returns SAS token -
iterate through a number of files, upload files (upload can be done in place); -
close container, return file list
==================
-
File service should have functionality to access file by FileID (FileID -> SignedURL)