すべてのプロダクト
Search
ドキュメントセンター

ApsaraVideo Live:Java用サーバーSDKの使用

最終更新日:Sep 02, 2024

このトピックでは、ApsaraVideo Liveが提供するサーバーSDK for Javaの使用方法と、関連するサンプルコードについて説明します。 このトピックでは、スナップショット設定をクエリするAPI操作を例として、ApsaraVideo Live API操作を呼び出す方法を示します。

前提条件

  • AccessKey ペアが取得済みである必要があります。 AccessKeyペアは、API操作を呼び出すときのID検証に使用されます。 AccessKeyペアの取得方法については、「AccessKeyペアの取得」をご参照ください。

  • Java用サーバーSDKがダウンロードされます。 詳細については、「SDKダウンロード」をご参照ください。

手順

  1. Alibaba Cloud Core SDKとApsaraVideo Live SDKの依存関係を、サーバーSDK for JavaのJARパッケージのpom.xmlファイルに追加します。 次の例では、ApsaraVideo Live SDKのバージョンは参照専用です。 SDKの最新バージョンについては、ApsaraVideo Live SDKページをご覧ください。

    1. Alibaba Cloud Core SDKをインポートします。

      <dependencies>
          <dependency>    
              <groupId>com.aliyun</groupId>    
              <artifactId>aliyun-java-sdk-core</artifactId>    
              <version>4.4.6</version>
          </dependency>
      </dependencies>
    2. ApsaraVideo Live SDKをインポートします。

      <dependencies>
          <dependency>
              <groupId>com.aliyun</groupId>
              <artifactId>aliyun-java-sdk-live</artifactId>
              <version>3.9.0</version>
          </dependency>
      </dependencies>
  2. IAcsClientインスタンスを初期化します。

    Springフレームワークを使用して、構成をプロジェクトにインポートする必要があります。 Springプロジェクトの構築方法については、Springの公式ウェブサイトをご覧ください。

    次の内容を設定ファイルに追加します。

    # The AccessKey ID and AccessKey secret for the client request.
    live.accessKeyId=<yourAccessKeyId>
    live.accessKeySecret=<yourAccessKeySecret>

    ApsaraVideo Live SDKにカプセル化されたAPI操作は、IAcsClientインスタンスを使用して呼び出されます。 したがって、API操作を呼び出す前に、IAcsClientインスタンスを初期化する必要があります。

    @Value("${live.accessKeyId}")
    private String accessKeyId;
    
    @Value("${live.accessKeySecret}")
    private String accessKeySecret;
    
    DefaultAcsClient client;
    
    @Before
    public void initClient() throws Exception {
        // The AccessKey pair of an Alibaba Cloud account has access permissions on all API operations. We recommend that you use the AccessKey pair of a RAM user to call API operations or perform routine O&M. 
        // We recommend that you not save your AccessKey pair in your project code. Otherwise, the AccessKey pair may be leaked and the security of all resources within your account may be compromised. 
        // In this example, the AccessKey pair is obtained from the configuration file to authenticate API accesses. 
        DefaultProfile profile = DefaultProfile.getProfile("cn-shanghai", accessKeyId, accessKeySecret);
        client = new DefaultAcsClient(profile);
    }
  3. リクエストを初期化します。

    API操作を呼び出す前に、対応するリクエストインスタンスを初期化する必要があります。 次のサンプルコードでは、例としてDescribeLiveSnapshotConfig操作を使用しています。

    public void requestInitSample() {
         DescribeLiveSnapshotConfigRequest describeLiveSnapshotConfigRequest = new DescribeLiveSnapshotConfigRequest();
         describeLiveSnapshotConfigRequest.setDomainName("example.aliyundoc.com");
         //describeLiveSnapshotConfigRequest.setProtocol(ProtocolType.HTTPS); // Specify the request protocol.
         //describeLiveSnapshotConfigRequest.setAcceptFormat(FormatType.JSON); // Specify the response format of the API operation.
         //describeLiveSnapshotConfigRequest.setMethod(MethodType.POST); // Specify the request method.
         //describeLiveSnapshotConfigRequest.setRegionId("cn-shanghai");// Specify the region in which you want to perform the specified operation. This setting is valid only for the current request and does not affect the default client settings.
         try {
             HttpResponse httpResponse = client.doAction(describeLiveSnapshotConfigRequest);
             System.out.println(httpResponse.getUrl());
             System.out.println(new String(httpResponse.getContent()));
             //todo something
         } catch (ServerException e) {
             e.printStackTrace();
         } catch (ClientException e) {
             e.printStackTrace();
         }
    }
  4. API操作を呼び出し、結果を解析します。

    IAcsClientインスタンスは、呼び出しの応答を取得する2つのメソッドを提供します。

    • doActionメソッドを呼び出して、呼び出しの生の応答を含むHttpResponseオブジェクトを取得します。 サンプルコード:

      public void invokeSample() {
           DescribeLiveSnapshotConfigRequest describeLiveSnapshotConfigRequest = new DescribeLiveSnapshotConfigRequest();
           describeLiveSnapshotConfigRequest.setDomainName("example.aliyundoc.com");
           try {
               HttpResponse httpResponse = client.doAction(describeLiveSnapshotConfigRequest);
               System.out.println(httpResponse.getUrl());
               System.out.println(new String(httpResponse.getContent()));
               //todo something else
           } catch (ServerException e) {
               e.printStackTrace();
           } catch (ClientException e) {
               e.printStackTrace();
           }
       }

      返されたHTTPステータスコードを確認します。

      • HTTPステータスコードが200以上300未満の場合、呼び出しは成功です。

      • HTTPステータスコードが300以上500未満の場合、Java用サーバーSDKはクライアントエラーを示すClientExceptionをスローします。

      • HTTPステータスコードが500以上の場合、Java用サーバーSDKはサーバーエラーを示すServerExceptionをスローします。

    • getAcsResponseメソッドを呼び出して、逆シリアル化オブジェクトを取得します。 サンプルコード:

      public void invokeSample() {
           DescribeLiveSnapshotConfigRequest describeLiveSnapshotConfigRequest = new DescribeLiveSnapshotConfigRequest();
           describeLiveSnapshotConfigRequest.setDomainName("example.aliyundoc.com");
           try {
               DescribeLiveSnapshotConfigResponse describeLiveSnapshotConfigResponse = client.getAcsResponse(describeLiveSnapshotConfigRequest);
               //todo something
           } catch (ServerException e) {
               e.printStackTrace();
           } catch (ClientException e) {
               e.printStackTrace();
           }
       }