Updates since last review
The Delivery service provides a general-purpose delivery mechanism which supports work product components beyond files. In the case of files, it wrappers the File service.
Delivery service relies on how objects were stored during the ingestion routine.
- It was agreed to skip mapping between file and storage service entities by using same record ID in both. Using this approach, we can directly call FileService to obtain file location using storage ID.
- Otherwise the relationship between these two record IDs must be maintained either on the record or in a mapping table.
GetResources takes list of SRNs and returns signed URL for file objects and complete JSON object if it’s not the file.
- SRNs ([string]) – list of SRNs to return
- Processed (json object, see below) – found entries
- Unprocessed ([string]) – list of SRNs which were not located in the system
Processed entities have format:
- SRN (string) – entity SRN
- Data (json object) – if entity is not a file entity, Data contains full entity details. Otherwise Signed URL object is returned (see below)
Data object format:
- SignedURL (string) – GCS location
For some cloud providers extra fields might be present, e.g. temp credentials, etc.
Please note, that this format is sufficient for R2 (R3?) only, since we’re assuming only file-based entities are going to be processed. For the broader cases, Driver information from the FileService’s entity should be included in the future.