このトピックでは、ApsaraVideo LiveのJava用サーバーSDKの使用方法とサンプルコードについて説明します。
前提条件
Resource Access Management (RAM) ユーザーが作成され、ApsaraVideo Liveが提供するAPIを使用するために必要な権限を取得します。 詳細については、「RAMユーザーの作成と権限付与」をご参照ください。
RAMユーザーのAccessKeyペアを取得します。 AccessKeyペアは、API呼び出しを行うためのユーザーIDの検証に使用されます。 詳細については、「AccessKeyペアの取得」をご参照ください。
Java 1.6以降がインストールされています。
手順
SDKをインストールする
Mavenを使用してJava用サーバーSDKをインストールするには、プロジェクトのpom.xmlファイルに次の依存関係を追加します。
<!-- Alibaba Cloud Core SDK -->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.6.1</version>
</dependency>
<!-- ApsaraVideo Live SDK -->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-live</artifactId>
<version>3.9.59</version>
</dependency>
SDKの使用
Java用サーバーSDKはさまざまな機能をサポートしています。 次のサンプルコードは、ストリーミングドメインのスナップショット設定を照会する方法の例を示しています。
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.live.model.v20161101.DescribeLiveSnapshotConfigRequest;
import com.aliyuncs.live.model.v20161101.DescribeLiveSnapshotConfigResponse;
import com.aliyuncs.profile.DefaultProfile;
public class SdkUseDemo {
public static void main(String[] args) {
DefaultProfile profile = DefaultProfile.getProfile("<regionId>", "<ALIBABA_CLOUD_ACCESS_KEY_ID>", "<ALIBABA_CLOUD_ACCESS_KEY_SECRET>");
IAcsClient client = new DefaultAcsClient(profile);
DescribeLiveSnapshotConfigRequest describeLiveStreamSnapshotInfoRequest=new DescribeLiveSnapshotConfigRequest();
describeLiveStreamSnapshotInfoRequest.setDomainName("<DomainName>");
DescribeLiveSnapshotConfigResponse describeLiveSnapshotConfigResponse = null;
try {
describeLiveSnapshotConfigResponse = client.getAcsResponse(describeLiveStreamSnapshotInfoRequest);
} catch (ClientException e) {
e.printStackTrace();
}
}
}
サンプルコードを使用して、SDK機能をテストできます。 プレースホルダーをサンプルコードの実際の値に置き換えます。
regionIdパラメーターは、サービスリージョンのIDを指定します。 リージョンIDを取得するには、「エンドポイント」をご参照ください。
ALIBABA_CLOUD_ACCESS_KEY_IDパラメーターとALIBABA_CLOUD_ACCESS_KEY_SECRETパラメーターは、AccessKeyペアを指定します。 AccessKeyペアの取得方法については、「AccessKeyペアの取得」をご参照ください。
DescribeLiveSnapshotConfigRequestとDescribeLiveSnapshotConfigResponseは、スナップショット設定を照会するためのリクエストクラスとレスポンスクラスです。
リクエストパラメーターとレスポンスパラメーターの詳細については、「DescribeLiveSnapshotConfig」をご参照ください。
ApsaraVideo Liveが提供するAPIには、1秒あたりの最大クエリ数 (QPS) に制限があります。 QPSの制限については、「フロー制御情報」をご参照ください。
この例では、DescribeLiveSnapshotConfigResponseは逆シリアル化された応答オブジェクトです。 生のHTTPレスポンスを直接操作する場合は、client.getAcsResponseメソッドをclient.doActionメソッドに変更します。 サンプルコード:
HttpResponse httpResponse=client.doAction(describeLiveStreamSnapshotInfoRequest);
int status=httpResponse.getStatus();
注:
200から299までのHTTPステータスコードは、呼び出しが成功したことを示します。
300から499へのHTTPステータスコードは、クライアントのエラーを示すClientExceptionをスローするようにSDKをトリガーします。
500以上のHTTPステータスコードは、サーバーエラーを示すServerExceptionをスローするようにSDKをトリガーします。
必要に応じてSDKがAccessKeyペアを取得できるように、プロパティファイルにAccessKeyペアを保存することを推奨します。 次のサンプルコードは、Spring Bootベースのプロジェクトで構成する方法を示しています。
# The AccessKey ID and AccessKey secret requested by the server SDK.
live.accessKeyId=<yourAccessKeyId>
live.accessKeySecret=<yourAccessKeySecret>
@Value("${live.accessKeyId}")
private String accessKeyId;
@Value("${live.accessKeySecret}")
private String accessKeySecret;
ApsaraVideo Live SDKを使用する場合は、次の命名規則に従います。
API
名にサフィックスRequest
を追加して、リクエストクラスを示します。API
名にサフィックスResponse
を追加して、レスポンスクラスを示します。
次の表に、ApsaraVideo Liveの一般的なAPIを示します。
API | リクエストクラス | 応答クラス |
DescribeLiveSnapshotConfig | DescribeLiveSnapshotConfig | |
AddLiveAppRecordConfig | AddLiveAppRecordConfig | |
DescribeLiveRecordConfig | DescribeLiveRecordConfig | |
AddLiveStreamTranscode | AddLiveStreamTranscode | |
DescribeLiveStreamTranscodeInfo | DescribeLiveStreamTranscodeInfo | |
BatchSetLiveDomainConfigs | BatchSetLiveDomainConfigs | |
DescribeLiveDomainConfigs | DescribeLiveDomainConfigs | |
使用可能なすべてのAPIについては、「関数別の操作のリスト」をご参照ください。 |
アクセス制御
RAMユーザーにAPIへのアクセスを許可するシステムポリシーに加えて、カスタムポリシーを作成して、リソースタイプに基づいてきめ細かいアクセス制御を実装できます。 たとえば、RAMユーザーaにドメインAでのみAPI操作へのアクセスを許可し、RAMユーザーBにドメインBでのみアクセスを許可するようにポリシーを構成できます。アクセス制御の実装方法については、「カスタムポリシーの作成」をご参照ください。
APIリファレンスは、各APIの権限情報を提供し、操作を使用するためにRAMユーザーまたはロールに付与できる権限を説明します。 次の図は、AddLiveAppSnapshotConfig操作の権限情報を示しています。
各APIでサポートされているアクセス制御については、「RAM権限付与」をご参照ください。