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:

  1. decouple the getLocation from the put file operations
  2. distinguish landing zone operations from file operations
  3. rename API calls to be more functionally significant
  4. add a put file operation so that applications can iterate or parallelize
  5. support no-database implementation for providers that can retrieve meta-data from the Blob (ex, POSIX-like)
  6. support POSIX interop (to be discussed)
  7. 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)
Edited by Dmitriy Rudko