inQuiry - Add New Cloud Storage - Implementation Changes & Testing

Background

This document explains what components of Sunbird inQuiry (version: release-5.2.0) uses Cloud Storage and how to integrate new Cloud Storage.

  • Above diagram shows inQuiry components (marked in yellow colour) and its connections with cloud storage.

  • As of now inQuiry supports cloud storage operations with Azure, Aws, Google Storage.

  • inQuiry has below flink jobs which interact with cloud storage for upload/download operation:

    • async-questionset-publish

    • questionset-republish

  • inquiry-api-service transforms cloud related metadata (e.g: downloadUrl, appIcon, etc) but doesn't interact with cloud storage. So there is no dependency with cloud-storage-sdk module.

    • e.g: the service convert cloud specific path (absolute path) to cloud neutral path (relative path) and vice versa.

  • In order to add support for any other cloud storage (e.g: OCI) under inQuiry components, below steps need to be followed:

  1. async-questionset-publish & questionset-republish flink job:

Code Changes:

  • Both jobs uses cloud-storage-sdk for cloud storage operations. So first the sdk need a code change to have support for new cloud storage provider (e.g: OCI).

Job Name

inQuiry Release Version

cloud-storage-sdk Version

cloud-storage-sdk scala version

Job Name

inQuiry Release Version

cloud-storage-sdk Version

cloud-storage-sdk scala version