Quando desativar a ingestão de streams
Desative a ingestão de streams no ApsaraVideo Live para atender a requisitos de segurança. Esse recurso é útil quando uma URL de ingestão autenticada fica exposta, ao detectar ingestão maliciosa ou quando as regras de negócio proíbem a ingestão para uma URL específica.
Desativar a ingestão de streams
-
Desativar a ingestão de streams no console do ApsaraVideo Live
-
Localizar e desativar uma URL de ingestão ativa
Com um stream ativo, acesse o console do ApsaraVideo Live e acesse a página . Selecione o nome de domínio desejado, clique em Search, localize o stream ao vivo ativo e clique em Disable.
Na coluna Actions, clique em ícone de mais (⋮) para abrir um menu e selecione Interrupt ou Live Editing.
-
Localizar e desativar uma URL de ingestão histórica
Após o término de um stream, acesse o console do ApsaraVideo Live e acesse a página . Clique em aba Stream History, selecione o nome de domínio e clique em Search. Localize o stream desejado e clique em Disable.
-
-
Desativar a ingestão de streams com um SDK
As APIs do ApsaraVideo Live baseiam-se na OpenAPI do Alibaba Cloud. Os SDKs fornecidos encapsulam essas chamadas de API. Para baixe o SDK do lado do servidor, consulte o SDK do lado do servidor. Para instruções de uso, veja as Instruções do SDK.
Se utilizar o SDK para Java, adicione a seguinte dependência Maven ao arquivo pom.xml:
<dependency> <groupId>com.aliyun</groupId> <artifactId>alibabacloud-live20161101</artifactId> <version>2.0.0</version> </dependency>NotaA versão do SDK serve apenas como referência. Para obter a versão mais recente, consulte o SDK do lado do servidor.
O fluxo principal do código de exemplo é:
-
Inicialize o objeto Client.
O SDK utiliza um objeto AsyncClient para chamar operações de API.
-
Inicialize a classe Request.
O SDK fornece classes Request e Response para cada operação de API. Para detalhes sobre os parâmetros de solicitação, consulte a referência da API ForbidLiveStream.
Envie a solicitação e obtenha o resultado.
Código de exemplo:
// This file is auto-generated, don't edit it. Thanks. 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 Configuration /*HttpClient httpClient = new ApacheAsyncHttpClientBuilder() .connectionTimeout(Duration.ofSeconds(10)) // Set the connection timeout time, the default is 10 seconds .responseTimeout(Duration.ofSeconds(10)) // Set the response timeout time, the default is 20 seconds .maxConnections(128) // Set the connection pool size .maxIdleTimeOut(Duration.ofSeconds(50)) // Set the connection pool timeout, the default is 30 seconds // Configure the proxy .proxy(new ProxyOptions(ProxyOptions.Type.HTTP, new InetSocketAddress("<YOUR-PROXY-HOSTNAME>", 9001)) .setCredentials("<YOUR-PROXY-USERNAME>", "<YOUR-PROXY-PASSWORD>")) // If it is an https connection, you need to configure the certificate, or ignore the certificate(.ignoreSSL(true)) .x509TrustManagers(new X509TrustManager[]{}) .keyManagers(new KeyManager[]{}) .ignoreSSL(false) .build();*/ // Configure Credentials authentication information, including ak, secret, token StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder() // Please ensure that the environment variables ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET are set. .accessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")) .accessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")) //.securityToken(System.getenv("ALIBABA_CLOUD_SECURITY_TOKEN")) // use STS token .build()); // Configure the Client AsyncClient client = AsyncClient.builder() .region("<Your RegionId>") // Region ID //.httpClient(httpClient) // Use the configured HttpClient, otherwise use the default HttpClient (Apache HttpClient) .credentialsProvider(provider) //.serviceConfiguration(Configuration.create()) // Service-level configuration // Client-level configuration rewrite, can set Endpoint, Http request parameters, etc. .overrideConfiguration( ClientOverrideConfiguration.create() // For more information about endpoints, visit https://api.aliyun.com/product/live .setEndpointOverride("live.aliyuncs.com") //.setConnectTimeout(Duration.ofSeconds(30)) ) .build(); // Parameter settings for API request ForbidLiveStreamRequest forbidLiveStreamRequest = ForbidLiveStreamRequest.builder() .regionId("<Your RegionId>") .domainName("<Your DomainName>") .appName("<Your AppName>") .streamName("<Your StreamName>") // Request-level configuration rewrite, can set Http request parameters, etc. // .requestConfiguration(RequestConfiguration.create().setHttpHeaders(new HttpHeaders())) .build(); // Asynchronously get the API response CompletableFuture<ForbidLiveStreamResponse> response = client.forbidLiveStream(forbidLiveStreamRequest); // Synchronously get the API response ForbidLiveStreamResponse resp = response.get(); System.out.println(new Gson().toJson(resp)); // Asynchronously process the response /*response.thenAccept(resp -> { System.out.println(new Gson().toJson(resp)); }).exceptionally(throwable -> { // Handling exceptions System.out.println(throwable.getMessage()); return null; });*/ // Close the client client.close(); } } -
Visualize a lista de bloqueios de ingestão de streams
-
Visualize a lista de bloqueios de ingestão no console do ApsaraVideo Live
Após desativar a ingestão de streams, acesse o console do ApsaraVideo Live e acesse a página . Selecione o nome de domínio, clique em aba Disabled Streams e clique em Search.
-
Obter a lista de bloqueios de ingestão com um SDK
As APIs do ApsaraVideo Live baseiam-se na OpenAPI do Alibaba Cloud. Os SDKs fornecidos encapsulam essas chamadas de API. Para baixe o SDK do lado do servidor, consulte o SDK do lado do servidor. Para instruções de uso, veja as Instruções do SDK.
<dependency> <groupId>com.aliyun</groupId> <artifactId>alibabacloud-live20161101</artifactId> <version>2.0.0</version> </dependency> The SDK version number is for reference only. For the latest version, see the server-side SDKserver-side SDK. The main process of the demo code is as follows: 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. Example code:// This file is auto-generated, don't edit it. Thanks. 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 Configuration /*HttpClient httpClient = new ApacheAsyncHttpClientBuilder() .connectionTimeout(Duration.ofSeconds(10)) // Set the connection timeout. The default value is 10 seconds. .responseTimeout(Duration.ofSeconds(10)) // Set the response timeout. The default value is 20 seconds. .maxConnections(128) // Set the connection pool size. .maxIdleTimeOut(Duration.ofSeconds(50)) // Set the connection pool idle timeout. The default value is 30 seconds. // Configure the proxy. .proxy(new ProxyOptions(ProxyOptions.Type.HTTP, new InetSocketAddress("<YOUR-PROXY-HOSTNAME>", 9001)) .setCredentials("<YOUR-PROXY-USERNAME>", "<YOUR-PROXY-PASSWORD>")) // For an HTTPS connection, you must configure an SSL certificate or ignore certificate verification by using .ignoreSSL(true). .x509TrustManagers(new X509TrustManager[]{}) .keyManagers(new KeyManager[]{}) .ignoreSSL(false) .build();*/ // Configure the credentials for authentication, including the AccessKey ID, AccessKey secret, and security token. StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder() // Please ensure that the environment variables ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET are set. .accessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")) .accessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")) //.securityToken(System.getenv("ALIBABA_CLOUD_SECURITY_TOKEN")) // Use an STS token. .build()); // Configure the client. AsyncClient client = AsyncClient.builder() .region("<Your ReginId>") // The region ID. //.httpClient(httpClient) // Specify the HttpClient. If you do not specify an HttpClient, the default Apache HttpClient is used. .credentialsProvider(provider) //.serviceConfiguration(Configuration.create()) // Service-level configuration. // Client-level override configuration. You can set parameters such as the endpoint and HTTP request parameters. .overrideConfiguration( ClientOverrideConfiguration.create() // For more information about the endpoint, visit https://api.aliyun.com/product/live. .setEndpointOverride("live.aliyuncs.com") //.setConnectTimeout(Duration.ofSeconds(30)) ) .build(); // Set the parameters for the API request. DescribeLiveStreamsBlockListRequest describeLiveStreamsBlockListRequest = DescribeLiveStreamsBlockListRequest.builder() .domainName("<Your DomainName>") // Request-level override configuration. You can set parameters such as HTTP request parameters. // .requestConfiguration(RequestConfiguration.create().setHttpHeaders(new HttpHeaders())) .build(); // Asynchronously call the API operation. CompletableFuture<DescribeLiveStreamsBlockListResponse> response = client.describeLiveStreamsBlockList(describeLiveStreamsBlockListRequest); // Synchronously obtain the response. DescribeLiveStreamsBlockListResponse resp = response.get(); System.out.println(new Gson().toJson(resp)); // Asynchronously process the response. /*response.thenAccept(resp -> { System.out.println(new Gson().toJson(resp)); }).exceptionally(throwable -> { // Handle the exception. System.out.println(throwable.getMessage()); return null; });*/ // Close the client. client.close(); } }<dependency> <groupId>com.aliyun</groupId> <artifactId>alibabacloud-live20161101</artifactId> <version>2.0.0</version> </dependency>
Retomar a ingestão de streams
-
Resume stream ingest on the ApsaraVideo Live console
Para retomar um stream desativado, acesse o console do ApsaraVideo Live e acesse a página . Selecione o nome de domínio, clique em aba Disabled Streams e clique em Enable para o stream desejado.
-
Retomar a ingestão de streams com um SDK
As APIs do ApsaraVideo Live baseiam-se na OpenAPI do Alibaba Cloud. Os SDKs fornecidos encapsulam essas chamadas de API. Para baixe o SDK do lado do servidor, consulte o SDK do lado do servidor. Para instruções de uso, veja as Instruções do SDK.
Se utilizar o SDK para Java, adicione a seguinte dependência Maven ao arquivo pom.xml:
<dependency> <groupId>com.aliyun</groupId> <artifactId>alibabacloud-live20161101</artifactId> <version>2.0.0</version> </dependency>NotaA versão do SDK serve apenas como referência. Para obter a versão mais recente, consulte o SDK do lado do servidor.
O fluxo principal do código de exemplo é:
-
Inicialize o objeto Client.
O SDK utiliza um objeto AsyncClient para chamar operações de API.
-
Inicialize a classe Request.
O SDK fornece classes Request e Response para cada operação de API. Para detalhes sobre os parâmetros de solicitação, consulte a referência da API ResumeLiveStream.
Envie a solicitação e obtenha o resultado.
Código de exemplo:
// This file is auto-generated, don't edit it. Thanks. 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 Configuration /*HttpClient httpClient = new ApacheAsyncHttpClientBuilder() .connectionTimeout(Duration.ofSeconds(10)) // Set the connection timeout time, the default is 10 seconds .responseTimeout(Duration.ofSeconds(10)) // Set the response timeout time, the default is 20 seconds .maxConnections(128) // Set the connection pool size .maxIdleTimeOut(Duration.ofSeconds(50)) // Set the connection pool timeout, the default is 30 seconds // Configure the proxy .proxy(new ProxyOptions(ProxyOptions.Type.HTTP, new InetSocketAddress("<YOUR-PROXY-HOSTNAME>", 9001)) .setCredentials("<YOUR-PROXY-USERNAME>", "<YOUR-PROXY-PASSWORD>")) // If it is an https connection, you need to configure the certificate, or ignore the certificate(.ignoreSSL(true)) .x509TrustManagers(new X509TrustManager[]{}) .keyManagers(new KeyManager[]{}) .ignoreSSL(false) .build();*/ // Configure Credentials authentication information, including ak, secret, token StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder() // Please ensure that the environment variables ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET are set. .accessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")) .accessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")) //.securityToken(System.getenv("ALIBABA_CLOUD_SECURITY_TOKEN")) // use STS token .build()); // Configure the Client AsyncClient client = AsyncClient.builder() .region("<Your RegionId>") // Region ID //.httpClient(httpClient) // Use the configured HttpClient, otherwise use the default HttpClient (Apache HttpClient) .credentialsProvider(provider) //.serviceConfiguration(Configuration.create()) // Service-level configuration // Client-level configuration rewrite, can set Endpoint, Http request parameters, etc. .overrideConfiguration( ClientOverrideConfiguration.create() // For more information about endpoints, visit https://api.aliyun.com/product/live .setEndpointOverride("live.aliyuncs.com") //.setConnectTimeout(Duration.ofSeconds(30)) ) .build(); // Parameter settings for API request ResumeLiveStreamRequest resumeLiveStreamRequest = ResumeLiveStreamRequest.builder() .domainName("<Your DomainName>") .liveStreamType("<Your LiveStreamType>") .appName("<Your AppName>") .streamName("<Your StreamName>") // Request-level configuration rewrite, can set Http request parameters, etc. // .requestConfiguration(RequestConfiguration.create().setHttpHeaders(new HttpHeaders())) .build(); // Asynchronously get the API response CompletableFuture<ResumeLiveStreamResponse> response = client.resumeLiveStream(resumeLiveStreamRequest); // Synchronously get the API response ResumeLiveStreamResponse resp = response.get(); System.out.println(new Gson().toJson(resp)); // Asynchronously process the response /*response.thenAccept(resp -> { System.out.println(new Gson().toJson(resp)); }).exceptionally(throwable -> { // Handling exceptions System.out.println(throwable.getMessage()); return null; });*/ // Close the client client.close(); } } -