Introduction

Storage locations for assets are kept in the Storage service. These locations may be https, s3, ftp etc. The storage scheme provides an abstraction of the protocol and authority part of the storage location so that resolution can be deferred.

URI Scheme Syntax

storage-uri     = "storage://" storage-ref path [ "?" query ] [ "#" fragment ]
storage-ref     = tenant "." storage-name
tenant          = name
storage-name    = name
name            = 1*( ALPHA / DIGIT / "_" / "-" )

path, query, fragment are as defined in URI.

Example:

storage://test.my-origin/path/to/file

URI Scheme Semantics

Provides an abstraction of storage locations to be resolved by the Storage service. The protocol is resolved to https, s3, ftp etc. The authority is resolved to host[:port]. Path, query and fragment remains unchanged.

Encoding Considerations

storage URIs are subject to encoding rules as defined in URI.

Security Considerations

The Storage service needs to ensure that storage locations that contain sensitive infromation are resolved to a secure protocol. It cannot be guaranteed nor enforced by the scheme.