Using Cloud Object Storage

Oracle Cloud’s Object Storage Amazon S3 Compatible API can easily integrate with your Unified Origin VOD workflow by accessing your media files in a similar way to AWS, Google Cloud and Azure.

Note

The Amazon S3 Compatibility API supports only path style URLs. V2 (virtual hosted) styled URLs aren't supported.

Go ahead and create a oracle cloud customer secret key by navigating to Identity > Domains > YOUR_DOMAIN > Users > YOUR_USER > Customer Secret Keys > Generate Secret Key

Copy the Secret Key (It won't be shown again). This will be used as your S3SecretKey & then copy the Access Key (which is always available via the user interface) and this will be used as your S3AccessKey.

Create an oracle cloud object storage bucket in your chosen Compartment and Region, then you can configure Apache to access the bucket with or without Apache Configuration.

Obtain the oracle cloud object storage namespace from Tenancy Details > Object storage settings. This must then be used alongside the Region Identifier and Bucket name to for the Proxy URL used.

https://{object-storage-namespace}.compat.objectstorage.{region}.oraclecloud.com/{bucket}

<VirtualHost *:80>
  ServerName www.example.com
  DocumentRoot /var/www/yoursite

  # Enable just in time packaging for VOD and using subrequests for I/O backend requests.
  <Location "/">
    UspHandleIsm on
    UspEnableSubreq on
  </Location>

  # Separate Location directive for remote storage
  <Location "/usp-eu-west-bucket/">
     IsmProxyPass "https://usp-oci-storage.compat.objectstorage.eu-amsterdam-1.oraclecloud.com/usp-eu-west-bucket"
  </Location>

  # If proxying to SSL hosts is desired, you must turn on SSLProxyEngine.
  SSLProxyEngine on

  <Proxy "https://usp-oci-storage.compat.objectstorage.eu-amsterdam-1.oraclecloud.com/usp-eu-west-bucket">
    S3AccessKey  0c012086a285498ba51e64b7f30b9f5f
    S3SecretKey  VGhpc19Jc250X2FfcmVhbF9zZWNyZXQK==
    S3Region     eu-west-1
    S3UseHeaders on
    ProxySet connectiontimeout=5 enablereuse=on keepalive=on retry=0 timeout=30 ttl=300
  </Proxy>

</VirtualHost>

Request to stream content can be made via the remote location as normal, for example:

% curl -I http://localhost/usp-eu-west-bucket/tears-of-steel-avc1.ism/.m3u8
HTTP/1.1 200 OK
Date: Mon, 02 Dec 2024 15:40:33 GMT
Server: Apache/2.4.62 (Unix)
X-USP: version=1.14.4 (30793)
Content-Length: 2449
Accept-Ranges: bytes
Last-Modified: Mon, 02 Dec 2024 15:32:47 GMT
ETag: "usp-2E809478"
Access-Control-Allow-Headers: origin, range
Access-Control-Allow-Methods: GET, HEAD, OPTIONS
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: Server,range
Content-Type: application/vnd.apple.mpegurl