Instale o SDK do servidor ApsaraVideo Live para Java e chame operações de API com exemplos de código.
Pré-requisitos
Um usuário RAM autorizado a chamar APIs do ApsaraVideo Live. Crie e autorize um usuário RAM.
Um par de AccessKey para autenticação. Crie um par de AccessKey.
Java 1.8 ou posterior.
Use o SDK
Instale o SDK
Adicione a seguinte dependência Maven ao arquivo pom.xml:
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>alibabacloud-live20161101</artifactId>
<version>2.0.1</version>
</dependency>
Chame uma operação de API
O exemplo a seguir consulta uma configuração de snapshot.
// 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 DescribeLiveSnapshotConfig {
public static void main(String[] args) throws Exception {
// HttpClient Configuration
/*HttpClient httpClient = new ApacheAsyncHttpClientBuilder()
.connectionTimeout(Duration.ofSeconds(10)) // Set the connection timeout. Default value: 10 seconds.
.responseTimeout(Duration.ofSeconds(10)) // Set the response timeout. Default value: 20 seconds.
.maxConnections(128) // Set the connection pool size.
.maxIdleTimeOut(Duration.ofSeconds(50)) // Set the connection pool timeout. Default value: 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 a certificate or ignore the certificate by using .ignoreSSL(true).
.x509TrustManagers(new X509TrustManager[]{})
.keyManagers(new KeyManager[]{})
.ignoreSSL(false)
.build();*/
// Configure credentials.
StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder()
// Ensure that the ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variables 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 RegionId>") // region ID
//.httpClient(httpClient) // Use the configured HttpClient. Otherwise, the default Apache HttpClient is used.
.credentialsProvider(provider)
//.serviceConfiguration(Configuration.create()) // Configure the service level.
// Override the client-level configuration to set parameters such as the endpoint and HTTP request parameters.
.overrideConfiguration(
ClientOverrideConfiguration.create()
// For a list of endpoints, see https://api.aliyun.com/product/live.
.setEndpointOverride("live.aliyuncs.com")
//.setConnectTimeout(Duration.ofSeconds(30))
)
.build();
// Set the parameters for the API request.
DescribeLiveSnapshotConfigRequest describeLiveSnapshotConfigRequest = DescribeLiveSnapshotConfigRequest.builder()
.domainName("<Your DomainName>")
.appName("<Your AppName>")
// Override the request-level configuration to set HTTP request parameters.
// .requestConfiguration(RequestConfiguration.create().setHttpHeaders(new HttpHeaders()))
.build();
// Asynchronously get the API response.
CompletableFuture<DescribeLiveSnapshotConfigResponse> response = client.describeLiveSnapshotConfig(describeLiveSnapshotConfigRequest);
// Synchronously get the API response.
DescribeLiveSnapshotConfigResponse 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 exceptions.
System.out.println(throwable.getMessage());
return null;
});*/
// Close the client.
client.close();
}
}
Substitua os espaços reservados entre sinais de menor e maior (
<...>) pelos valores reais.<region ID>: região onde o serviço está implantado. Valores válidos: Endpoints.<ALIBABA_CLOUD_ACCESS_KEY_ID>e<ALIBABA_CLOUD_ACCESS_KEY_SECRET>: seu par de AccessKey. Pré-requisitos.DescribeLiveSnapshotConfigRequest: classe de requisição para consultar uma configuração de snapshot.
DescribeLiveSnapshotConfigResponse: classe de resposta para consultar uma configuração de snapshot.
Parâmetros de requisição e resposta: DescribeLiveSnapshotConfig.
As chamadas de API estão sujeitas a limites de QPS. Controle de fluxo.
O exemplo anterior desserializa a resposta em um objeto DescribeLiveSnapshotConfigResponse. Para obter o objeto HttpResponse bruto, chame doAction.
HttpResponse httpResponse=client.doAction(describeLiveStreamSnapshotInfoRequest);
int status=httpResponse.getStatus();
Notas de uso:
2xx: chamada bem-sucedida.
3xx ou 4xx: o SDK lança uma ClientException.
5xx: o SDK lança uma ServerException.
Escolha client.getAcsResponse ou client.doAction conforme sua necessidade.
Convenção de nomenclatura: [APIName]Request é a classe de requisição, e [APIName]Response é a classe de resposta.
Operações de API comuns:
|
API |
Classe de requisição |
Classe de resposta |
|
DescribeLiveSnapshotConfig |
DescribeLiveSnapshotConfig |
|
|
AddLiveAppRecordConfig |
AddLiveAppRecordConfig |
|
|
DescribeLiveRecordConfig |
DescribeLiveRecordConfig |
|
|
AddLiveStreamTranscode |
AddLiveStreamTranscode |
|
|
DescribeLiveStreamTranscodeInfo |
DescribeLiveStreamTranscodeInfo |
|
|
BatchSetLiveDomainConfigs |
BatchSetLiveDomainConfigs |
|
|
DescribeLiveDomainConfigs |
DescribeLiveDomainConfigs |
|
|
Para obter informações sobre todas as operações de API disponíveis, consulte a visão geral da API. |
||
Controle de acesso
Cada operação de API inclui informações de autorização. Por exemplo, a operação AddLiveAppSnapshotConfig tem os seguintes detalhes:
Action: live:AddLiveAppSnapshotConfig. Nível de acesso: create. Tipo de recurso: Domain. Formato ARN: acs:cdn:*:{#accountId}:domain/{#DomainName}. Sem chaves de condição ou operações associadas.
Para um controle de acesso mais granular, como restringir um usuário RAM a um domínio específico, crie uma política personalizada.
Detalhes de controle de acesso para cada operação: Autorização RAM.