全部产品
Search
文档中心

ApsaraVideo Media Processing:Permintaan token keamanan

更新时间:Jul 06, 2025

Dalam alur kerja media, setiap file media input diidentifikasi secara unik oleh ID media. Anda dapat mengaitkan berbagai format output dan resolusi dengan ID media tersebut. Untuk memutar file media dalam berbagai format serta beralih otomatis antara resolusi, Anda dapat melakukannya berdasarkan ID medianya. Untuk memastikan keamanan video terenkripsi, Anda harus memutar video terenkripsi menggunakan ID medianya. Untuk akses yang aman dan pengelolaan izin, gunakan Security Token Service (STS) dari Resource Access Management (RAM) untuk menghasilkan token keamanan. Gunakan token ini untuk memutar video berdasarkan ID medianya. Topik ini menjelaskan cara meminta token keamanan.

Prasyarat

SDK STS yang disediakan oleh RAM untuk bahasa pemrograman Anda telah diinstal. Dalam contoh ini, SDK STS untuk Java digunakan. Untuk informasi lebih lanjut tentang instalasi SDK STS untuk Java dan kode contohnya, lihat SDK STS untuk Java. Untuk referensi kode contoh dalam bahasa pemrograman lainnya, lihat Ikhtisar SDK STS.

Persiapan

Sebelum meminta token keamanan, Anda harus mendapatkan Alibaba Cloud Resource Name (ARN) dari Peran RAM yang diperlukan oleh STS.

  1. Masuk ke Konsol RAM. Di panel navigasi kiri, pilih Identities > Roles.

  2. Di halaman Peran, temukan Peran RAM yang ARN-nya ingin Anda peroleh, lalu klik nama Peran RAM tersebut. Halaman detail Peran RAM akan muncul.

  3. Di bagian Informasi Dasar, salin nilai parameter ARN. Simpan ARN secara rahasia untuk digunakan nanti.arn

Prosedur

  1. Referensikan SDK STS untuk Java di file pom.xml.

    <repositories>
         <repository>
             <id>sonatype-nexus-staging</id>
             <name>Sonatype Nexus Staging</name>
             <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
             <releases>
                 <enabled>true</enabled>
             </releases>
             <snapshots>
                 <enabled>true</enabled>
             </snapshots>
         </repository>
     </repositories>
    <dependencies>
     <dependency>
       <groupId>com.aliyun</groupId>
       <artifactId>aliyun-java-sdk-sts</artifactId>
       <version>2.1.6</version>
     </dependency>
     <dependency>
       <groupId>com.aliyun</groupId>
       <artifactId>aliyun-java-sdk-core</artifactId>
       <version>2.2.0</version>
     </dependency>
    </dependencies>

    Catatan

    Anda bisa mendapatkan versi terbaru paket aliyun-java-sdk-core dari Repositori Maven.

  2. Hasilkan token keamanan.

    import com.aliyuncs.DefaultAcsClient;
    import com.aliyuncs.exceptions.ClientException;
    import com.aliyuncs.http.MethodType;
    import com.aliyuncs.http.ProtocolType;
    import com.aliyuncs.sts.model.v20150401.AssumeRoleRequest;
    import com.aliyuncs.sts.model.v20150401.AssumeRoleResponse;
    
    /**
     * Anda hanya dapat memanggil operasi ini sebagai pengguna RAM.
     */
    public class STSTokenDemo {
    
        public static void main(String[] args) throws Exception {
            // Inisialisasi klien.
            DefaultAcsClient client = InitClient.initMpsClient();
            // Anda harus memperoleh ARN dari Peran RAM di Konsol RAM.
            String roleArn = "acs:ram::174*********11242:role/sts-role";
    
            try {
                AssumeRoleResponse response = assumeRole(client, roleArn);
                System.out.println("Kedaluwarsa: " + response.getCredentials().getExpiration());
                System.out.println("Access Key Id: " + response.getCredentials().getAccessKeyId());
                System.out.println("Access Key Secret: " + response.getCredentials().getAccessKeySecret());
                System.out.println("Security Token: " + response.getCredentials().getSecurityToken());
                System.out.println("RequestId: " + response.getRequestId());
    
            } catch (ClientException e) {
                System.out.println("Gagal mendapatkan token.");
                System.out.println("Kode kesalahan: " + e.getErrCode());
                System.out.println("Pesan kesalahan: " + e.getErrMsg());
            }
        }
        /** Metode yang digunakan untuk menghasilkan pasangan AccessKey sementara dan token keamanan. */
        private static AssumeRoleResponse assumeRole(
                DefaultAcsClient client,
                String roleArn)
                throws ClientException {
            final AssumeRoleRequest request = new AssumeRoleRequest();
            request.setVersion("2015-04-01");
            request.setMethod(MethodType.POST);
            request.setProtocol(ProtocolType.HTTPS);
            request.setDurationSeconds(900L);
            request.setRoleArn(roleArn);
            request.setRoleSessionName("test-token");
            return client.getAcsResponse(request);
        }
    }
  3. Atur periode validitas token keamanan.

    Periode validitas token keamanan dalam kode contoh adalah 900 detik. Anda dapat menyesuaikan periode validitas sesuai kebutuhan bisnis Anda. Nilai valid: 900 hingga 3.600. Satuan: detik.

    Selama periode validitas token keamanan, Anda dapat menggunakannya tanpa perlu menghasilkan yang baru. Jalankan kode berikut untuk memeriksa apakah token keamanan baru diperlukan:

    private static boolean isTimeExpire(String expiration) {
         Date nowDate = new Date();
         Date expireDate = javax.xml.bind.DatatypeConverter.parseDateTime(expiration).getTime();
         if (expireDate.getTime() <= nowDate.getTime()) {
             return true;
         } else {
             return false;
         }
    }

Referensi