アップストリーミングをブロックするタイミング
ApsaraVideo Live でアップストリーミングをブロックして、セキュリティ要件を満たすことができます。この機能は、認証済みのアップストリーミング URL が公開された場合、悪意のあるストリームが URL にプッシュされた場合、またはビジネスでアップストリーミング URL をブロックする必要がある場合などのシナリオで役立ちます。
アップストリーミングをブロックする方法
ApsaraVideo Live コンソールでアップストリーミングをブロックする
アクティブなアップストリーミング URL を見つけてブロックする
ストリームが正常にアップストリーミングされた後、ApsaraVideo Live コンソール の ページに移動します。ドメイン名を選択し、検索 をクリックしてから、進行中のストリームの ブロック をクリックします。

履歴のアップストリーミング URL を見つけてブロックする
アップストリーミングが終了した後、ApsaraVideo Live コンソール の ページに移動します。ログ タブをクリックし、ドメイン名を選択して 検索 をクリックします。ストリームを見つけて ブロック をクリックします。
SDK を使用してアップストリーミングをブロックする
ApsaraVideo Live API は Alibaba Cloud OpenAPI に基づいています。SDK は OpenAPI 呼び出しを行うためのラッパーとして機能します。サーバーサイド SDK をダウンロードするには、「サーバーサイド 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 オブジェクトを使用して OpenAPI 操作を呼び出します。
Request クラスを初期化します。
SDK は、各 API 操作に対して Request クラスと Response クラスを提供します。アップストリーミングのブロック操作のリクエストパラメーターの詳細については、「アップストリーミングのブロック 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()); // Client を設定します 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 リクエストのパラメーター設定 ForbidLiveStreamRequest forbidLiveStreamRequest = ForbidLiveStreamRequest.builder() .regionId("<Your ReginId>") .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 は OpenAPI 呼び出しを行うためのラッパーとして機能します。サーバーサイド SDK をダウンロードするには、「サーバーサイド SDK」をご参照ください。SDK の使用方法の詳細については、「SDK の手順」をご参照ください。
<dependency> <groupId>com.aliyun</groupId> <artifactId>alibabacloud-live20161101</artifactId> <version>2.0.0</version> </dependency>説明SDK のバージョン番号は参考用です。最新バージョンを取得するには、「サーバーサイド SDK」をご参照ください。
サンプルコードの主なフローは次のとおりです。
Client オブジェクトを初期化します。
SDK は AsyncClient オブジェクトを使用して OpenAPI 操作を呼び出します。
Request クラスを初期化します。
SDK は、各操作に対して Request クラスと Response クラスを提供します。アップストリーミング URL のブラックリストをクエリするためのリクエストパラメーターの詳細については、「アップストリーミングのブラックリストのクエリ 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 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 接続の場合は、証明書を設定するか、証明書を無視する必要があります (.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()); // Client を設定します 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); // API リクエストの戻り値を同期で取得します 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(); } }
ブラックリストに登録されたアップストリーミング URL を再開する方法
ApsaraVideo Live コンソールでストリームを再開する
ストリームが無効化された後、ApsaraVideo Live コンソール の ページに移動し、ドメイン名を選択して ブロック済み タブをクリックし、再開 をクリックします。
SDK での再開
ApsaraVideo Live API は Alibaba Cloud OpenAPI に基づいています。SDK は OpenAPI 呼び出しを行うためのラッパーとして機能します。サーバーサイド SDK をダウンロードするには、「サーバーサイド 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 オブジェクトを使用して OpenAPI 操作を呼び出します。
Request クラスを初期化します。
SDK は、各 API 操作に対して Request クラスと Response クラスを提供します。アップストリーミングを再開するためのリクエストパラメーターの詳細については、「ライブストリームのアップストリーミングの再開 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()); // Client を設定します 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(); } }