Client-side S3 access

Client-side S3 access

Relevant Issue: https://sagebionetworks.jira.com/browse/PLFM-4253

StorageLocationSettings are immutable and thus can be cached client side. The information in these will therefore not be repeated in the new implementations of UploadDestination and FileHandle.

keyPrefixUUID is a new UUID generated by the backend every time a ExternalObjectStoreUploadDestination is requested.

The key in ExternalObjectStorageFileHandle, once uploaded will be keyPrefixUUID/fileName.

New API

The clients are responsible for creating FileHandles after upload has completed since Synapse does not have access to the new storage location

With the changes to the hierarchy of FileHandle, the POST /externalFileHandle service will be made generic to allow all implementations of ExternalFileHandleInterface

Action

URI

Method

Request Body

Response Body

Action

URI

Method

Request Body

Response Body

Creates any instance of an ExternalFileHandleInterface

/externalFileHandle

POST

ExternalFileHandleInterface

ExternalFileHandleInterface