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.