Topik ini menjelaskan cara menggunakan ApsaraVideo Live Server SDK untuk Java dan menyediakan kode contoh.
Prasyarat
Untuk mengakses API dari ApsaraVideo Live, Pengguna Resource Access Management (RAM) harus memiliki izin yang diperlukan. Untuk informasi lebih lanjut, lihat Buat dan Berikan Izin kepada Pengguna RAM.
Dapatkan AccessKey pair. Layanan menggunakan Pasangan Kunci Akses untuk identity verification. Untuk membuat Pasangan Kunci Akses untuk pengguna RAM, lihat Buat Pasangan Kunci Akses.
Lingkungan Java 1.8 atau yang lebih baru telah dikonfigurasi.
Gunakan SDK
Instal SDK
Berikut ini menggunakan Maven sebagai contoh. Untuk menginstal SDK, tambahkan dependensi berikut ke file pom.xml di proyek Anda:
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>alibabacloud-live20161101</artifactId>
<version>2.0.1</version>
</dependency>
Gunakan SDK
Kode contoh berikut menunjukkan cara menggunakan SDK untuk meminta konfigurasi snapshot.
// File ini dibuat secara otomatis, jangan edit. Terima kasih.
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 {
// Konfigurasi HttpClient
/*HttpClient httpClient = new ApacheAsyncHttpClientBuilder()
.connectionTimeout(Duration.ofSeconds(10)) // Set waktu batas koneksi, default adalah 10 detik
.responseTimeout(Duration.ofSeconds(10)) // Set waktu batas respons, default adalah 20 detik
.maxConnections(128) // Set ukuran kolam koneksi
.maxIdleTimeOut(Duration.ofSeconds(50)) // Set waktu batas kolam koneksi, default adalah 30 detik
// Konfigurasikan proxy
.proxy(new ProxyOptions(ProxyOptions.Type.HTTP, new InetSocketAddress("<YOUR-PROXY-HOSTNAME>", 9001))
.setCredentials("<YOUR-PROXY-USERNAME>", "<YOUR-PROXY-PASSWORD>"))
// Jika ini adalah koneksi https, Anda perlu mengonfigurasi sertifikat, atau abaikan sertifikat(.ignoreSSL(true))
.x509TrustManagers(new X509TrustManager[]{})
.keyManagers(new KeyManager[]{})
.ignoreSSL(false)
.build();*/
// Konfigurasikan informasi autentikasi Kredensial, termasuk ak, rahasia, token
StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder()
// Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET telah disetel.
.accessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
.accessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))
//.securityToken(System.getenv("ALIBABA_CLOUD_SECURITY_TOKEN")) // gunakan token STS
.build());
// Konfigurasikan Client
AsyncClient client = AsyncClient.builder()
.region("<Your RegionId>") // ID Wilayah
//.httpClient(httpClient) // Gunakan HttpClient yang dikonfigurasi, jika tidak gunakan HttpClient default (Apache HttpClient)
.credentialsProvider(provider)
//.serviceConfiguration(Configuration.create()) // Konfigurasi tingkat layanan
// Konfigurasi ulang tingkat klien, dapat mengatur Endpoint, parameter permintaan Http, dll.
.overrideConfiguration(
ClientOverrideConfiguration.create()
// Untuk informasi lebih lanjut tentang endpoint, lihat https://api.aliyun.com/product/live
.setEndpointOverride("live.aliyuncs.com")
//.setConnectTimeout(Duration.ofSeconds(30))
)
.build();
// Pengaturan parameter untuk permintaan API
DescribeLiveSnapshotConfigRequest describeLiveSnapshotConfigRequest = DescribeLiveSnapshotConfigRequest.builder()
.domainName("<Your DomainName>")
.appName("<Your AppName>")
// Konfigurasi ulang tingkat permintaan, dapat mengatur parameter permintaan Http, dll.
// .requestConfiguration(RequestConfiguration.create().setHttpHeaders(new HttpHeaders()))
.build();
// Dapatkan nilai balik permintaan API secara asinkron
CompletableFuture<DescribeLiveSnapshotConfigResponse> response = client.describeLiveSnapshotConfig(describeLiveSnapshotConfigRequest);
// Dapatkan nilai balik permintaan API secara sinkron
DescribeLiveSnapshotConfigResponse resp = response.get();
System.out.println(new Gson().toJson(resp));
// Pemrosesan asinkron nilai balik
/*response.thenAccept(resp -> {
System.out.println(new Gson().toJson(resp));
}).exceptionally(throwable -> { // Penanganan pengecualian
System.out.println(throwable.getMessage());
return null;
});*/
// Akhirnya, tutup klien
client.close();
}
}Anda dapat menggunakan kode contoh untuk menguji SDK. Ganti placeholder dalam tanda kurung sudut (<>) dengan nilai sebenarnya Anda.
<regionId> menentukan ID wilayah. Untuk informasi lebih lanjut tentang cara mendapatkan ID wilayah, lihat Endpoints.
<ALIBABA_CLOUD_ACCESS_KEY_ID> dan <ALIBABA_CLOUD_ACCESS_KEY_SECRET> menentukan AccessKey pair. Jika Anda tidak memiliki Pasangan Kunci Akses, lihat bagian Prasyarat dari topik ini.
DescribeLiveSnapshotConfigRequest adalah kelas permintaan untuk meminta konfigurasi snapshot.
DescribeLiveSnapshotConfigResponse adalah kelas tanggapan untuk meminta konfigurasi snapshot.
Untuk informasi lebih lanjut tentang parameter permintaan dan konten tanggapan, lihat operasi API DescribeLiveSnapshotConfig.
Operasi API tunduk pada batasan permintaan per detik (QPS). Untuk informasi lebih lanjut tentang batasan QPS, lihat Throttling.
Pada contoh sebelumnya, DescribeLiveSnapshotConfigResponse adalah objek tanggapan yang dideserialisasi. Dalam beberapa kasus, Anda mungkin ingin mengambil HttpResponse mentah tanpa deserialisasi. Untuk melakukannya, Anda hanya perlu mengubah metode yang dipanggil.
HttpResponse httpResponse=client.doAction(describeLiveStreamSnapshotInfoRequest);
int status=httpResponse.getStatus();Catatan penggunaan:
Kode status HTTP dari 200 hingga 299 menunjukkan bahwa panggilan API berhasil.
Kode status HTTP dari 300 hingga 499 menunjukkan bahwa SDK sisi server melempar ClientException, yang menunjukkan kesalahan sisi klien.
Kode status HTTP 500 atau lebih besar menunjukkan bahwa SDK sisi server melempar ServerException, yang menunjukkan kesalahan sisi server.
Anda dapat menggunakan metode client.getAcsResponse dan client.doAction sesuai kebutuhan.
Dalam SDK ApsaraVideo Live, kelas permintaan untuk operasi API diberi nama dengan menambahkan API dan Request, dan kelas tanggapan diberi nama dengan menambahkan API dan Response.
Tabel berikut mencantumkan operasi API umum.
API | Kelas Permintaan | Kelas Respons |
DescribeLiveSnapshotConfig | DescribeLiveSnapshotConfig | |
AddLiveAppRecordConfig | AddLiveAppRecordConfig | |
DescribeLiveRecordConfig | DescribeLiveRecordConfig | |
AddLiveStreamTranscode | AddLiveStreamTranscode | |
DescribeLiveStreamTranscodeInfo | DescribeLiveStreamTranscodeInfo | |
BatchSetLiveDomainConfigs | BatchSetLiveDomainConfigs | |
DescribeLiveDomainConfigs | DescribeLiveDomainConfigs | |
Untuk informasi lebih lanjut tentang operasi API, lihat Ikhtisar API. | ||
Kontrol Sumber Daya
Saat Anda melihat operasi API, Anda mungkin memperhatikan bagian Authorization Information. Sebagai contoh, operasi API AddLiveAppSnapshotConfig berisi informasi otorisasi berikut.

Saat memberikan izin kepada pengguna RAM, Anda memberikan izin kepada pengguna RAM untuk mengakses operasi API. Namun, dalam beberapa kasus, Anda mungkin memerlukan access control yang lebih rinci. Sebagai contoh, Anda mungkin ingin mengizinkan pengguna RAM A untuk memanggil operasi API hanya pada DomainA dan pengguna RAM B untuk memanggil operasi API yang sama hanya pada DomainB. Jika Anda memiliki persyaratan bisnis seperti itu, Anda dapat menerapkan kontrol akses tingkat sumber daya. Untuk informasi lebih lanjut tentang cara memberikan izin tingkat sumber daya, lihat Otorisasi Kustom.
Untuk informasi lebih lanjut tentang sumber daya yang mendukung kontrol akses untuk setiap operasi API, lihat Ikhtisar Informasi Otorisasi API.