Azure 스토리지에서 데이터 가져오기

이 문서에서는 적응형 양식을 Azure 스토리지에 저장된 데이터로 채우는 방법을 보여 줍니다.
적응형 양식 데이터를 Azure 스토리지에 저장했으며 이제 적응형 양식에 해당 데이터를 미리 채우려고 한다고 가정합니다.

NOTE
이 문서의 코드는 적응형 양식을 기반으로 하는 핵심 구성 요소에서는 작동하지 않습니다.핵심 구성 요소 기반 적응형 양식에 대한 동등한 문서는 여기에서 확인할 수 있습니다

GET 요청 만들기

다음 단계는 blobID를 사용하여 Azure 저장소에서 데이터를 가져오는 코드를 작성하는 것입니다. 데이터를 가져오기 위해 다음 코드를 작성했습니다. URL은 OSGi 구성의 sasToken 및 storageURI 값과 getBlobData 함수에 전달된 blobID를 사용하여 생성되었습니다

 @Override
public String getBlobData(String blobID) {
    String sasToken = azurePortalConfigurationService.getSASToken();
    String storageURI = azurePortalConfigurationService.getStorageURI();
    log.debug("The SAS Token is " + sasToken);
    log.debug("The Storage URL is " + storageURI);
    String httpGetURL = storageURI + blobID;
    httpGetURL = httpGetURL + sasToken;
    HttpGet httpGet = new HttpGet(httpGetURL);

    org.apache.http.impl.client.CloseableHttpClient httpClient = HttpClientBuilder.create().build();
    CloseableHttpResponse httpResponse = null;
    try {
        httpResponse = httpClient.execute(httpGet);
        HttpEntity httpEntity = httpResponse.getEntity();
        String blobData = EntityUtils.toString(httpEntity);
        log.debug("The blob data I got was " + blobData);
        return blobData;

    } catch (ClientProtocolException e) {

        log.debug("Got Client Protocol Exception " + e.getMessage());
    } catch (IOException e) {

        log.debug("Got IOEXception " + e.getMessage());
    }

    return null;
}

적응형 양식이 URL에서 guid 매개 변수로 렌더링되면 템플릿과 연결된 사용자 지정 페이지 구성 요소가 적응형 양식을 가져와서 Azure 스토리지의 데이터로 채웁니다.
다음은 템플릿과 연관된 페이지 구성 요소의 jsp에 있는 코드입니다

com.aemforms.saveandfetchfromazure.StoreAndFetchDataFromAzureStorage azureStorage = sling.getService(com.aemforms.saveandfetchfromazure.StoreAndFetchDataFromAzureStorage.class);


String guid = request.getParameter("guid");

if(guid!=null&&!guid.isEmpty())
{
    String dataXml = azureStorage.getBlobData(guid);
    slingRequest.setAttribute("data",dataXml);

}

솔루션 테스트

recommendation-more-help
8de24117-1378-413c-a581-01e660b7163e