Hitachi Content Platform (HCP)¶
HCP supports the standard HTTP commands as well as range requests.
Available commands are:
Command | Description |
---|---|
PUT | Stores objects, versions, empty directories, annotations, ACLs and copies objects. |
POST | Changes metadata values. |
HEAD | Checks existence of objects, versions, directories, annotations, ACLs or retrieves metadata for objects or versions. |
GET | Retrieves the contents and metadata of an object. |
DELETE | Deletes objects, versions, empty directories, annotations, ACLs and symbolic links. |
Configuration¶
An example with tears-of-steel from Verify Your Setup looks like the following:
PUT
the content:
#!/bin/bash
curl -v -k \
-H "Authorization: HCP dXNlcg==:76a2173be6393254e72ffa4d6df1030a" \
-H "Host: <namespace>.<tenant>.content.us-nj1.cloud.hds.com" \
-T $1
https://<namespace><tenant>.content.us-nj1.cloud.hds.com/rest/test/$1
Similar to the Azure Storage, files have to be copied individually to their location.
GET
the content:
#!/bin/bash
curl -v -k \
-H "Authorization: HCP dXNlcg==:76a2173be6393254e72ffa4d6df1030a" \
-H "Host: <namespace>.<tenant>.content.us-nj1.cloud.hds.com" \
https://<namespace><tenant>.content.us-nj1.cloud.hds.com/rest/test/$1
Once the content is copied to HCP it can be accessed by the origin just like with S3, Azure or GCE.
The configuration of the origin is similar:
<Location "/">
UspHandleIsm on
UspEnableSubreq on
IsmProxyPass http://hcp.unified-streaming.com/
</Location>
<Proxy "http://hcp.unified-streaming.com">
ProxySet connectiontimeout=5 enablereuse=on keepalive=on retry=0 timeout=30 ttl=300
</Proxy>
The URL to the content then becomes the following, for instance for MPEG-DASH:
http://www.example.com/tears-of-steel/tears-of-steel.ism/.mpd
where www.example.com is the webserver running USP and has the previous vhost
snippet. Note that in this case the IsmProxPass
and Proxy
directives
point to 'hcp.unified-streaming.com' which is a proxy that adds an authorisation
header - described below.
Header Authorization¶
The authorization header is mandatory on each call to HCP, as well as the use of SSL. In order to apply the header a proxy virtual host can be setup, on the same server:
origin <-- client
|
hcp <-- proxy
When the request comes in the origin calls the proxy which in turn adds the request header and proxies the request over SSL to HCP.
The proxy virtual host config looks like the following:
<VirtualHost *:80>
ServerName hcp
ErrorLog /var/log/apache2/hcp-error.log
CustomLog /var/log/apache2/hcp-access.log combined
LogLevel info
HostnameLookups Off
UseCanonicalName On
RequestHeader set Authorization "HCP dXNlcg==:76a2173be6393254e72ffa4d6df1030a"
SSLProxyEngine on
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
ProxyPass / https://<namespace>.<tenant>.content.us-nj1.cloud.hds.com/rest/your-bucket/
ProxyPassReverse / https://<namespace>.<tenant>.content.us-nj1.cloud.hds.com/rest/your-bucket/
</VirtualHost>