Working With Files

The File Service has two main components;

  • APIs, with which your application can mange files, and
  • the Tenant Admin Webapp, which lets you configure the service to meet your needs.

Tenant Admin Webapp

Configuring the File Service is about creating File Type collections, and setting up permissions and retention policies for them. You do this through our Tenant Admin Webapp. See File Type collections for more information.

API

You can learn the specific details of how an API works from our Swagger Documentation; here we’ll just give a brief overview of the functionality supplied through them.

All API calls to the File Service require authentication via Keycloak. See the instructions for setting up a tenant and getting access tokens for details on how to do this.

Uploading

Files are uploaded to Azure Blob Storage and stored as octet streams. In addition to the file, there is a small amount of metadata that gets created and stored along with it, as discussed below.

File Scanning

When you upload a file, you can specify whether or not it should be scanned for viruses or other malicious software (defaults to scan). Scanning is provided by ClamAV, an open-source anti-virus toolkit maintained by Cisco Systems Inc. The database is updated frequently, so you can be sure the File Service will be looking for the latest threats. The service is designed to be fast, but you may find there is some delay between uploading and being able to access your file. This should not be an issue with small files.

Access Permission

Using File Type collections you can specify access permissions based on your tenant (Keycloak) roles. See ADSP File Type collections for more information.

Metadata

Metadata - or File Properties - is stored along with the file. Metadata includes

Name Description
id The file ID with which which you can refer to the file when performing File Service API calls.
filename The name of the file.
urn Logical URN of the file. You can map the URN to a URL using the ADSP SDK’s getResourceUrl() method.
size File Size
typeName Name of the File Type collection to which the file belongs to.
record ID An optional, arbitrary, application record-ID that can be used to cross reference the file with application data.
created date Date the file was uploaded.
created by The name and ID of the authenticated user that uploaded the file.
scanned True if the file was scanned when uploaded.
infected True if a virus or other malware was found in the file contents.

Searching

You can search through your uploaded files using the following criteria

  • file names matching, or partially matching, an input string
  • metadata matching a specific record ID
  • those files in a specific File Type collection

Downloading

Files are stored, and downloaded, as octet streams. Please see the Swagger Documentation for more information on downloading via the APIs.