Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

CNAME: CNAME records can be used to alias one name to another. CNAME stands for Canonical Name.

...

  • Plugins loading in editors & packing as part of ECAR.

  • Generation of pre-signed URL used by Editors

  • ECAR files will be having absolute paths (Need discussion on how to solve)

  • Data stored in the DB’s

    streamingUrl

    • downloadUrl

    • variants

    ----------------

    • previewUrl

    • appIcon

    • posterImage

    • artifactUrl

    • toc_url

    • thumbnail

    • assetMap

...

Don’t store the absolute paths in the DB’s. Always store the path with CNAME as prefix.

example:

https://store.diksha.gov.inin/tpntp-content-production/content/assets/do_31329674183946240014126/a-boy-animation-1.mp4

Configure the service with CNAME value as shown below

...

The list of CNAME_properties can be configured by any adopters as per their schema properties.

Challenges:

...

  • We can handle only CNAME as part of this scope. Any domain name changes requires data migration as the DB stores the full path with CNAME+Domain.
    Note: This can be generalised by handling the CNAME+Domain on service side while sending the responses by storing only relative paths in the DB.

  • ECAR is packaged with CNAME values. So any domain change required data migration by republishing the ECAR’s(Content republish).

  • StreamingUrl will required the data migration as it is specific to CSP providers. This may requires regeneration of all streaming URL’s with new CSP provider.

JOB Files to be addressed:
asset-enrichment -> org.sunbird.job.assetenricment.helpers.ImageEnrichmentHelper -> enrichImage method -> optimizeImage method

asset-enrichment -> org.sunbird.job.assetenricment.helpers.OptimizerHelper -> replaceArtifactUrl method

asset-enrichment -> org.sunbird.job.assetenricment.helpers.VideoEnrichmentHelper ??

publish-pipeline -> content-publish -> org.sunbird.job.content.publish.helpers.ExtractableMimeTypeHelper -> getCloudStoreURL, updatePreviewUrl, getObjectWithEcar methods

publish-pipeline -> content-publish -> org.sunbird.job.content.publish.helpers.ContentPublisher -> updatePreviewUrl, getObjectWithEcar methods

publish-pipeline -> content-publish -> org.sunbird.job.content.publish.helpers.CollectionPublisher -> getObjectWithEcar method