All images, videos, and other resources are named based on their raw data. The Blob naming convention provides efficient storage, avoids data duplication, provides the ability to verify data and safely share the data between local devices with strong consistency.
A Blob name is the MD5 of the binary data followed by a dash then the length in bytes.
For example: 962B5B1AF8C3B868D87979E92D8BFCE7-164197
A Blob can be cached forever because a Blob with a given name never changes.
Dynamic content uses snapshots. A snapshot is the dynamically generated Blob at a specific point in time. Snapshots are updated after they are used in a lazy fashion.
Blobstores can be shared with multiple servers and served using a content delivery network (CDN).
For example: http://d3psb5pjgez07s.cloudfront.net/962B5B1AF8C3B868D87979E92D8BFCE7-164197
Additional Custom Blobstores
To supplement the global blobstores, additional blobstores can be specified in a cloud config. This makes it possible for a digital signage network to use their own infrastructure for storing and distributing images and videos.
When configured, all new data uploaded will be transferred to one or more additional servers. Players will download using HTTP from the configured endpoints.
The cloud config must use a fully qualified domain name and players must be configured with a matching serverAddress
for the custom blobstore to be used.
Uploading to custom S3 bucket
blobstoreConfig |
s3,[AMAZON-ACCESS-KEY],[AMAZON-SECRET-KEY],[BUCKET-NAME],[BUCKET-REGION] |
blobstoreHttpEndpoint |
http://s3.amazonaws.com/[BUCKET-NAME]/ |
blobstoreHttpsEndpoint |
https://s3.amazonaws.com/[BUCKET-NAME]/ |
Uploading to custom Google Cloud Storage bucket
blobstoreConfig |
gcs,[GOOGLE-SERVICE-ACCOUNT-JSON-KEY-FILE-PATH],[BUCKET-NAME] |
blobstoreHttpEndpoint |
http://storage.googleapis.com/[BUCKET-NAME]/ |
blobstoreHttpsEndpoint |
https://storage.googleapis.com/[BUCKET-NAME]/ |
Note, JSON Key file must be added to our servers manually.
Uploading to custom blobstore
blobstoreConfig |
blobstore://[SERVER-DOMAIN-NAME] |
blobstoreHttpEndpoint |
http://www.mycustomserver.com/ |
blobstoreHttpsEndpoint |
https://www.mycustomserver.com/ |
Uploading to custom server using FTP
blobstoreConfig |
ftp://[USERNAME]:[PASSWORD]@[SERVER-DOMAIN-NAME]/blobstore/ |
blobstoreHttpEndpoint |
http://www.mycustomserver.com/blobstore/ |
blobstoreHttpsEndpoint |
https://www.mycustomserver.com/blobstore/ |
Uploading to custom server using SCP
blobstoreConfig |
scp://[USERNAME]:[PASSWORD]@[SERVER-DOMAIN-NAME]/blobstore/ |
blobstoreHttpEndpoint |
http://www.mycustomserver.com/blobstore/ |
blobstoreHttpsEndpoint |
https://www.mycustomserver.com/blobstore/ |
After adding a new blobstore configuration, test it by uploading content.
Multiple blobstores can be specified by using numbered name suffixes. For example blobstoreConfig_0=...
, blobstoreConfig_1=...
, blobstoreConfig_3=...
. The blobstores must share the same HTTP endpoints (Round Robin DNS).
A newly configured blobstore can be primed using the /blobstore-sync tool. This tool requires a user ID. All blobs accessible to the user will be transferred.
Note: Please contact us before attempting to add a custom blobstore.
Comments
0 comments
Please sign in to leave a comment.