アップストリーミングをブロックするタイミング
ApsaraVideo Live のアップストリーミングをブロックすることで、セキュリティ要件を満たすことができます。これは、認証済みのアップストリーミング URL が漏洩した場合、悪意のあるアップストリーミングが検出された場合、またはビジネス要件により特定の URL へのアップストリーミングが禁止されている場合に役立ちます。
アップストリーミングのブロック
-
ApsaraVideo Live コンソールでのアップストリーミングのブロック
-
アクティブなアップストリーミング URL の検索とブロック
ストリームがアクティブになったら、ApsaraVideo Live コンソールにログインし、 ページに移動します。目的のドメイン名を選択し、検索 をクリックしてアクティブなライブストリームを見つけ、ブロック をクリックします。
[操作] 列で、その他アイコン (⋮) をクリックしてメニューを開き、中断 と ライブ編集 を選択できます。
-
履歴アップストリーミング URL の検索とブロック
ストリームが終了したら、ApsaraVideo Live コンソールにログインし、 ページに移動します。ログ タブをクリックし、ドメイン名を選択して 検索 をクリックします。目的のストリームを見つけて ブロック をクリックします。
-
-
SDK を使用したアップストリーミングのブロック
ApsaraVideo Live の API は Alibaba Cloud OpenAPI に基づいています。提供されている SDK は、これらの API 呼び出しをラップします。サーバーサイド SDK をダウンロードするには、「サーバーサイド SDK」をご参照ください。使用方法については、「SDK の説明」をご参照ください。
Java SDK を使用する場合は、次の Maven 依存関係を pom.xml ファイルに追加します。
<dependency> <groupId>com.aliyun</groupId> <artifactId>alibabacloud-live20161101</artifactId> <version>2.0.0</version> </dependency>説明SDK のバージョンは参考用です。最新バージョンについては、「サーバーサイド SDK」をご参照ください。
サンプルコードの主なワークフローは次のとおりです。
-
Client オブジェクトの初期化
SDK は AsyncClient オブジェクトを使用して API を呼び出します。
-
Request クラスの初期化
SDK は、API ごとに Request クラスと Response クラスを提供します。リクエストパラメーターの詳細については、「ForbidLiveStream 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 ForbidLiveStream { 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();*/ // AK、Secret、Token などの認証情報を設定します。 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 を使用します。指定しない場合、デフォルトの 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 リクエストのパラメーター設定 ForbidLiveStreamRequest forbidLiveStreamRequest = ForbidLiveStreamRequest.builder() .regionId("<Your RegionId>") .domainName("<Your DomainName>") .appName("<Your AppName>") .streamName("<Your StreamName>") // リクエストレベルの上書き設定。HTTP リクエストパラメーターなどを設定できます。 // .requestConfiguration(RequestConfiguration.create().setHttpHeaders(new HttpHeaders())) .build(); // API レスポンスを非同期で取得します。 CompletableFuture<ForbidLiveStreamResponse> response = client.forbidLiveStream(forbidLiveStreamRequest); // API レスポンスを同期的に取得します。 ForbidLiveStreamResponse 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(); } } -
アップストリーミングブラックリストの表示
-
ApsaraVideo Live コンソールでのアップストリーミングブラックリストの表示
アップストリーミングをブロックした後、ApsaraVideo Live コンソールにログインし、 ページに移動します。ドメイン名を選択し、ブロック済み タブをクリックしてから、検索 をクリックします。
-
SDK を使用したアップストリーミングブラックリストの取得
ApsaraVideo Live の API は Alibaba Cloud OpenAPI に基づいています。提供されている SDK は、これらの API 呼び出しをラップします。サーバーサイド SDK をダウンロードするには、「サーバーサイド SDK」をご参照ください。使用方法については、「SDK の説明」をご参照ください。
<dependency> <groupId>com.aliyun</groupId> <artifactId>alibabacloud-live20161101</artifactId> <version>2.0.0</version> </dependency>説明SDK のバージョン番号は参考用です。最新バージョンについては、サーバーサイド SDK をご参照ください。
デモコードの主な処理は以下のとおりです。
-
Initialize the Client object.
The SDK uses the AsyncClient object to call OpenAPI.
-
Initialize the Request class.
The SDK provides a Request class and a Response class for each API. To learn which parameters are required for the Request class to disable stream ingest, see the DescribeLiveStreamsBlockList API.
-
Send the request and get the result.
コード例:
<dependency> <groupId>com.aliyun</groupId> <artifactId>alibabacloud-live20161101</artifactId> <version>2.0.0</version> </dependency>// このファイルは自動生成されます。編集しないでください。 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 DescribeLiveStreamsBlockList { 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 接続の場合、SSL 証明書を設定するか、.ignoreSSL(true) を使用して証明書の検証を無視する必要があります。 .x509TrustManagers(new X509TrustManager[]{}) .keyManagers(new KeyManager[]{}) .ignoreSSL(false) .build();*/ // AccessKey ID、AccessKey シークレット、セキュリティトークンなどの認証情報を設定します。 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 ReginId>") // リージョン ID。 //.httpClient(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 リクエストのパラメーターを設定します。 DescribeLiveStreamsBlockListRequest describeLiveStreamsBlockListRequest = DescribeLiveStreamsBlockListRequest.builder() .domainName("<Your DomainName>") // リクエストレベルのオーバーライド設定。HTTP リクエストパラメーターなどを設定できます。 // .requestConfiguration(RequestConfiguration.create().setHttpHeaders(new HttpHeaders())) .build(); // API 操作を非同期に呼び出します。 CompletableFuture<DescribeLiveStreamsBlockListResponse> response = client.describeLiveStreamsBlockList(describeLiveStreamsBlockListRequest); // 同期的にレスポンスを取得します。 DescribeLiveStreamsBlockListResponse 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(); } } -
アップストリーミングの再開
-
[ApsaraVideo Live コンソールでのアップストリーミングの再開]
ブロックされたストリームを再開するには、ApsaraVideo Live コンソールにログインし、 ページに移動します。ドメイン名を選択し、ブロック済み タブをクリックしてから、目的のストリームの 再開 をクリックします。
-
SDK を使用したアップストリーミングの再開
ApsaraVideo Live の API は Alibaba Cloud OpenAPI に基づいています。提供されている SDK は、これらの API 呼び出しをラップします。サーバーサイド SDK をダウンロードするには、「サーバーサイド SDK」をご参照ください。使用方法については、「SDK の説明」をご参照ください。
Java SDK を使用する場合は、次の Maven 依存関係を pom.xml ファイルに追加します。
<dependency> <groupId>com.aliyun</groupId> <artifactId>alibabacloud-live20161101</artifactId> <version>2.0.0</version> </dependency>説明SDK のバージョンは参考用です。最新バージョンについては、「サーバーサイド SDK」をご参照ください。
サンプルコードの主なワークフローは次のとおりです。
-
Client オブジェクトの初期化
SDK は AsyncClient オブジェクトを使用して API を呼び出します。
-
Request クラスの初期化
SDK は、API ごとに Request クラスと Response クラスを提供します。リクエストパラメーターの詳細については、「ResumeLiveStream 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 ResumeLiveStream { 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();*/ // AK、Secret、Token などの認証情報を設定します。 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 を使用します。指定しない場合、デフォルトの 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 リクエストのパラメーター設定 ResumeLiveStreamRequest resumeLiveStreamRequest = ResumeLiveStreamRequest.builder() .domainName("<Your DomainName>") .liveStreamType("<Your LiveStreamType>") .appName("<Your AppName>") .streamName("<Your StreamName>") // リクエストレベルの上書き設定。HTTP リクエストパラメーターなどを設定できます。 // .requestConfiguration(RequestConfiguration.create().setHttpHeaders(new HttpHeaders())) .build(); // API レスポンスを非同期で取得します。 CompletableFuture<ResumeLiveStreamResponse> response = client.resumeLiveStream(resumeLiveStreamRequest); // API レスポンスを同期的に取得します。 ResumeLiveStreamResponse 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(); } } -