Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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

Image RemovedImage Added

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.The keyPath in ClientDelegatedS3UploadDestination is client generated: baseKey/<<UUID>>

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

The key in ClientDelegatedS3FIleHandleExternalObjectStorageFileHandle, once uploaded will be baseKey/<<UUID>>keyPrefixUUID/fileName.

New API

Because the upload must occur client-side, the client must be The clients are responsible for creating the FIleHandle once uploading has completedFileHandles 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

ActionURIMethodRequest BodyResponse Body
Creates
a ClientDelegatedS3FileHandle. Its storageLocationId must match that of a ClientDelegatedS3StorageLocationSetting
any instance of an ExternalFileHandleInterface/externalFileHandle
/clientS3????
POST
ClientDelegatedS3FileHandle
ExternalFileHandleInterface
ClientDelegatedS3FIleHandle
ExternalFileHandleInterface