ApsaraVideo Live サーバー SDK for Java をインストールし、コード例を使用して API オペレーションを呼び出します。
前提条件
-
ApsaraVideo Live API を呼び出す権限が付与された RAM ユーザー。詳細については、「RAM ユーザーの作成と認可」をご参照ください。
-
認証用の AccessKey ペア。詳細については、「AccessKey ペアの作成」をご参照ください。
-
Java 1.8 以降。
SDK の使用
SDK のインストール
次の Maven 依存関係を pom.xml ファイルに追加します:
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>alibabacloud-live20161101</artifactId>
<version>2.0.1</version>
</dependency>
API オペレーションの呼び出し
次の例では、スナップショット設定をクエリします。
// このファイルは自動生成されています。編集しないでください。
package demo;
import com.aliyun.auth.credentials.Credential;
import com.aliyun.auth.credentials.provider.StaticCredentialProvider;
import com.aliyun.core.http.HttpClient;
import com.aliyun.core.http.HttpMethod;
import com.aliyun.core.http.ProxyOptions;
import com.aliyun.httpcomponent.httpclient.ApacheAsyncHttpClientBuilder;
import com.aliyun.sdk.service.live20161101.models.*;
import com.aliyun.sdk.service.live20161101.*;
import com.google.gson.Gson;
import darabonba.core.RequestConfiguration;
import darabonba.core.client.ClientOverrideConfiguration;
import darabonba.core.utils.CommonUtil;
import darabonba.core.TeaPair;
//import javax.net.ssl.KeyManager;
//import javax.net.ssl.X509TrustManager;
import java.net.InetSocketAddress;
import java.time.Duration;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.io.*;
public class DescribeLiveSnapshotConfig {
public static void main(String[] args) throws Exception {
// HttpClient の設定
/*HttpClient httpClient = new ApacheAsyncHttpClientBuilder()
.connectionTimeout(Duration.ofSeconds(10)) // 接続タイムアウトを設定します。デフォルト値:10 秒。
.responseTimeout(Duration.ofSeconds(10)) // レスポンスタイムアウトを設定します。デフォルト値:20 秒。
.maxConnections(128) // 接続プールサイズを設定します。
.maxIdleTimeOut(Duration.ofSeconds(50)) // 接続プールのタイムアウトを設定します。デフォルト値:30 秒。
// プロキシを設定します。
.proxy(new ProxyOptions(ProxyOptions.Type.HTTP, new InetSocketAddress("<YOUR-PROXY-HOSTNAME>", 9001))
.setCredentials("<YOUR-PROXY-USERNAME>", "<YOUR-PROXY-PASSWORD>"))
// HTTPS 接続の場合、証明書を設定するか、.ignoreSSL(true) を使用して証明書を無視する必要があります。
.x509TrustManagers(new X509TrustManager[]{})
.keyManagers(new KeyManager[]{})
.ignoreSSL(false)
.build();*/
// 認証情報を設定します。
StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder()
// ALIBABA_CLOUD_ACCESS_KEY_ID および ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
.accessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
.accessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))
//.securityToken(System.getenv("ALIBABA_CLOUD_SECURITY_TOKEN")) // STS トークンを使用します。
.build());
// クライアントを設定します。
AsyncClient client = AsyncClient.builder()
.region("<Your RegionId>") // リージョン ID
//.httpClient(httpClient) // 設定した HttpClient を使用します。設定しない場合は、デフォルトの Apache HttpClient が使用されます。
.credentialsProvider(provider)
//.serviceConfiguration(Configuration.create()) // サービスレベルを設定します。
// クライアントレベルの設定を上書きして、エンドポイントや HTTP リクエストパラメーターなどを設定します。
.overrideConfiguration(
ClientOverrideConfiguration.create()
// エンドポイントの一覧については、https://api.aliyun.com/product/live を参照してください。
.setEndpointOverride("live.aliyuncs.com")
//.setConnectTimeout(Duration.ofSeconds(30))
)
.build();
// API リクエストのパラメーターを設定します。
DescribeLiveSnapshotConfigRequest describeLiveSnapshotConfigRequest = DescribeLiveSnapshotConfigRequest.builder()
.domainName("<Your DomainName>")
.appName("<Your AppName>")
// リクエストレベルの設定を上書きして、HTTP リクエストパラメーターを設定します。
// .requestConfiguration(RequestConfiguration.create().setHttpHeaders(new HttpHeaders()))
.build();
// 非同期で API レスポンスを取得します。
CompletableFuture<DescribeLiveSnapshotConfigResponse> response = client.describeLiveSnapshotConfig(describeLiveSnapshotConfigRequest);
// 同期で API レスポンスを取得します。
DescribeLiveSnapshotConfigResponse resp = response.get();
System.out.println(new Gson().toJson(resp));
// 非同期でレスポンスを処理します。
/*response.thenAccept(resp -> {
System.out.println(new Gson().toJson(resp));
}).exceptionally(throwable -> { // 例外を処理します。
System.out.println(throwable.getMessage());
return null;
});*/
// クライアントを閉じます。
client.close();
}
}
-
山括弧 (
<...>) 内のプレースホルダーを実際の値に置き換えてください。 -
<region ID>:サービスがデプロイされているリージョン。有効な値: エンドポイント。 -
<ALIBABA_CLOUD_ACCESS_KEY_ID>と<ALIBABA_CLOUD_ACCESS_KEY_SECRET>: AccessKey ペア。 前提条件をご参照ください。 -
DescribeLiveSnapshotConfigRequest は、スナップショット設定をクエリするためのリクエストクラスです。
-
DescribeLiveSnapshotConfigResponse は、スナップショット設定をクエリするためのレスポンスクラスです。
-
リクエストとレスポンスのパラメーターについては、「DescribeLiveSnapshotConfig」をご参照ください。
-
API 呼び出しには QPS 制限が適用されます。詳細については、「フロー制御」をご参照ください。
上記の例では、レスポンスを DescribeLiveSnapshotConfigResponse オブジェクトにデシリアライズします。生の HttpResponse オブジェクトを取得するには、代わりに doAction を呼び出します。
HttpResponse httpResponse=client.doAction(describeLiveSnapshotConfigRequest);
int status=httpResponse.getStatus();
使用上の注意:
-
2xx:呼び出しは成功です。
-
3xx または 4xx:SDK は ClientException をスローします。
-
5xx:SDK は ServerException をスローします。
必要に応じて、client.getAcsResponse または client.doAction を選択してください。
命名規則: [APIName]Request はリクエストクラス、[APIName]Response はレスポンスクラスです。
一般的な API オペレーション:
|
API |
リクエストクラス |
レスポンスクラス |
|
DescribeLiveSnapshotConfig |
DescribeLiveSnapshotConfig |
|
|
AddLiveAppRecordConfig |
AddLiveAppRecordConfig |
|
|
DescribeLiveRecordConfig |
DescribeLiveRecordConfig |
|
|
AddLiveStreamTranscode |
AddLiveStreamTranscode |
|
|
DescribeLiveStreamTranscodeInfo |
DescribeLiveStreamTranscodeInfo |
|
|
BatchSetLiveDomainConfigs |
BatchSetLiveDomainConfigs |
|
|
DescribeLiveDomainConfigs |
DescribeLiveDomainConfigs |
|
|
利用可能なすべての API オペレーションについては、「API overview」をご参照ください。 |
||
アクセス制御
各 API オペレーションには認可情報が含まれます。たとえば、AddLiveAppSnapshotConfig API の詳細は次のとおりです:
Action: live:AddLiveAppSnapshotConfig。アクセスレベル: create。リソースタイプ: Domain。ARN 形式: acs:live:*:{#accountId}:domain/{#DomainName}。条件キーまたは関連オペレーションはありません。
特定のドメインに対して RAM ユーザーを制限するなど、よりきめ細かな アクセス制御 を行うには、カスタムポリシー を作成してください。
各オペレーションのアクセス制御の詳細については、「RAM 認可」をご参照ください。