Server ApsaraVideo for Short Video menangani pertukaran data, pemrosesan logika bisnis, dan manajemen data operasional antara aplikasi ApsaraVideo for Short Video dan ApsaraVideo VOD. Topik ini menjelaskan cara mengintegrasikan server ApsaraVideo for Short Video.
Prasyarat
Akun Alibaba Cloud telah dibuat dan verifikasi nama asli telah selesai. Untuk membuat akun Alibaba Cloud, kunjungi situs resmi Alibaba Cloud. Untuk informasi selengkapnya, lihat Buat Akun Alibaba Cloud.
Elastic Compute Service (ECS) telah diaktifkan dan instans telah dikonfigurasi. Untuk informasi selengkapnya, lihat Aktifkan dan konfigurasi layanan ECS.
JDK 8 telah diinstal pada server ECS.
MySQL 5.7 telah diinstal pada server ECS. Untuk informasi selengkapnya, lihat Instal dan konfigurasi database MySQL. Setelah layanan Anda dipublikasikan, kami menyarankan Anda menggunakan ApsaraDB RDS. Untuk informasi selengkapnya, lihat ApsaraDB RDS.
ApsaraVideo VOD telah diaktifkan dan templat yang diperlukan telah dikonfigurasi di konsol. Untuk informasi selengkapnya, lihat Aktifkan dan konfigurasi ApsaraVideo VOD.
Prosedur
Unggah kode sumber
Unduh kode sumber untuk server dan konsol manajemen ApsaraVideo for Short Video. Untuk URL unduhan, lihat SDK ApsaraVideo for Short Video.
Di server tempat file kode sumber disimpan, jalankan perintah berikut untuk mengunggah file kode sumber ke server ECS.
scp <file_kode_sumber> user@<alamat_IP_server_ECS>:<jalur_unggah>
scp ApsaraVideo_QuVideo_v1.4.0_Server_20191226.zip user@10.0.0.0:/home/user/workspace/
ApsaraVideo_QuVideo_v1.4.0_Server_20191226.zip adalah file kode sumber. user adalah nama pengguna untuk server ECS. 10.0.0.0 adalah alamat IP server ECS. /home/user/workspace/ adalah jalur unggah.
CatatanInformasi contoh, seperti file kode sumber, nama pengguna server ECS, alamat IP server ECS, dan jalur unggah, hanya sebagai referensi. Ganti informasi contoh tersebut dengan informasi aktual Anda.
Masuk ke server ECS dan ekstrak file kode sumber.
cd /home/user/workspace
unzip ApsaraVideo_QuVideo_v1.4.0_Server_20191226.zip
CatatanJika unzip belum diinstal, jalankan perintah sudo apt install unzip untuk menginstalnya.
Inisialisasi dan konfigurasi database
Anda dapat membangun perpustakaan musik sendiri.
Struktur data dari data yang dikembalikan harus sama dengan struktur data yang digunakan untuk mengambil daftar musik dari layanan Alibaba Cloud. Jika tidak, permintaan akan gagal.
Jika Anda menggunakan struktur data kustom, Anda harus menyesuaikan logika kode di lapisan demo.
Buat database bernama voddemo.
cd /home/user/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/sql
mysqladmin -u root -p create voddemo
Buat tabel dan akun administrator.
mysql -u root -p voddemo < ./appserver_create_table.sql
CatatanSkrip appserver_create_table.sql tidak hanya membuat tabel tetapi juga menggunakan pernyataan INSERT untuk membuat akun administrator konsol. Nama pengguna adalah admin dan kata sandinya adalah 123456. Setelah Anda mengintegrasikan konsol, Anda dapat menggunakan akun ini untuk masuk ke konsol demo sebagai administrator.
Ubah aturan case sensitivity database.
Edit file konfigurasi database.
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
Tekan tombol I dan tambahkan
lower_case_table_names=1di akhir file.Tekan tombol Esc dan masukkan :wq! untuk menyimpan file dan keluar.
Mulai ulang database untuk menyelesaikan konfigurasi.
sudo service mysql restart
Konfigurasi alamat database.
Edit file konfigurasi kode sumber.
vim /home/user/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/src/main/resources/application.properties
Tekan tombol I dan ubah file sebagai berikut.
spring.datasource.url = jdbc:mysql://Alamat IP database (127.0.0.1):3306/Nama database (voddemo)?useSSL=false&useUnicode=true&characterEncoding=UTF-8 spring.datasource.username = Nama pengguna login database, misalnya, admin spring.datasource.password = Kata sandi login databaseCatatanJika database dan server sama-sama berjalan di instans ECS, Anda dapat mengatur alamat IP database menjadi 127.0.0.1. Jika tidak, gunakan alamat IP mesin tempat database berada.
Database yang Anda buat selama inisialisasi bernama voddemo.
Tekan tombol Esc dan masukkan :wq! untuk menyimpan file dan keluar.
Konfigurasi peran RAM
Langkah-langkah umumnya sama seperti yang dijelaskan dalam Buat peran. Setelah Anda menyelesaikan Langkah 6 dalam topik tersebut untuk memilih izin, lakukan langkah-langkah berikut. Anda dapat menentukan nama peran kustom. Topik ini menggunakan alivc-demo-role sebagai contoh.
Di halaman Role Management, klik nama peran RAM yang Anda buat, seperti alivc-demo-role, untuk menanyakan Nama Sumber Daya Alibaba Cloud (ARN)-nya. Kami menyarankan untuk mencatat nama peran RAM dan ARN untuk digunakan nanti.
Di halaman Role Management, klik nama peran RAM Anda, seperti alivc-demo-role. Klik tab Trust Policy lalu klik Edit Trust Policy. Ubah kebijakan kepercayaan sebagai berikut:
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "ecs.aliyuncs.com" ] } } ], "Version": "1" }Ini menunjukkan bahwa peran tersebut adalah peran layanan dan dapat diasumsikan oleh layanan Alibaba Cloud tepercaya (ECS). Jika Anda tidak mengubah kebijakan kepercayaan, peran RAM tidak dapat disambungkan ke instans ECS.
Atur parameter ID instans menjadi
["ID Instans"].Sambungkan peran RAM ke instans ECS.
Panggil operasi API AttachInstanceRamRole ECS di OpenAPI Explorer. Untuk informasi selengkapnya, lihat OpenAPI Explorer.
CatatanRegionId: ID wilayah tempat instans ECS berada, seperti Tiongkok (Shanghai). Anda dapat menanyakan ID wilayah di Konsol ECS.
RamRoleName: Nama peran RAM. Dalam contoh ini, namanya adalah alivc-demo-role.
InstanceIds: ID instans ECS sisi server tempat Anda ingin menyambungkan peran RAM. Anda dapat menanyakan ID instans di Konsol ECS. ID harus dalam format array, seperti ["i-bp135jrddxxf9tgo****"].
Klik Invoke. Jika panggilan berhasil, pesan sukses akan ditampilkan di hasil debug di sebelah kanan.
Jalankan perintah berikut di terminal ECS untuk memeriksa apakah peran RAM terkait dengan instans ECS.
curl http://100.100.100.200/latest/meta-data/ram/security-credentials/alivc-demo-role
Jika informasi berikut ditampilkan, otorisasi sementara dari Layanan Token Keamanan (STS) dikembalikan, yang menunjukkan bahwa peran RAM terkait dengan instans ECS.
{ "AccessKeyId" : "STS.XXXXXXXXXXXX", "AccessKeySecret" : "XXXXXXXXXXXXXXXX", "Expiration" : "2020-11-20T14:33:31Z", "SecurityToken" : "XXXXXXXXXXXXXXXXXXXXXX", "LastUpdated" : "2020-11-20T08:33:31Z", "Code" : "Success" }CatatanAnda hanya dapat menyambungkan satu peran RAM ke sebuah instans ECS. Untuk mengubah peran RAM, panggil operasi DetachInstanceRamRole di OpenAPI Explorer untuk melepaskan peran RAM dari instans ECS. Kemudian, panggil AttachInstanceRamRole untuk menyambungkan peran RAM baru.
Konfigurasi informasi RAM.
Edit file konfigurasi kode sumber.
vim /home/user/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/src/main/resources/application.properties
Tekan tombol I dan ubah file seperti pada contoh berikut.
roleArn = XXXXXXX:role/alivc-demo-role roleSessionName = vod-role roleName = alivc-demo-role
CatatanREGION_CN_HANGZHOU menunjukkan wilayah tempat layanan ApsaraVideo VOD berada, seperti cn-shanghai untuk Tiongkok (Shanghai).
roleArn menunjukkan ARN yang diambil dari konsol RAM.
roleSessionName menunjukkan nama sesi token sementara. Anda dapat menentukan nama kustom.
roleName menunjukkan nama peran RAM yang diambil dari konsol RAM. Dalam contoh ini, namanya adalah alivc-demo-role.
Tekan tombol Esc dan masukkan :wq! untuk menyimpan file dan keluar.
Konfigurasi ApsaraVideo VOD.
Edit file konfigurasi kode sumber.
vim /home/user/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/src/main/resources/application.properties
Tekan tombol I dan ubah file sebagai berikut.

Nama Parameter
Wajib
Deskripsi
TEMPLATEGROUP_ID
Ya
ID kelompok template transkoding. Untuk informasi selengkapnya, lihat Kelompok Template Transkoding.
LONGVIDEO_TRANSCODE_TEMPLATEGROUP_ID
Tidak
Kelompok template transkoding yang digunakan untuk fitur publikasi-sebelum-tinjauan untuk video panjang.
TAB_TEMPLATEGROUP_ID
Tidak
ID kelompok template transkoding Narrowband HD. Konfigurasikan parameter ini untuk merekomendasikan video Narrowband HD di konsol. Jika parameter ini tidak ditentukan, terjadi kesalahan saat Anda merekomendasikan video Narrowband HD.
DOMAIN_NAME
Ya
Alamat server ECS. Dalam contoh ini, alamatnya adalah http://10.10.10.101:8080/.
AVATAR_DOMAIN_NAME
Tidak
Alamat sumber daya gambar profil, yaitu alamat sumber daya statis server ECS. Dalam contoh ini, alamatnya adalah http://10.10.10.101:8080/resource/.
AVATAR_URL
Tidak
Daftar nama file gambar profil, seperti 1.png,2.png.
CatatanLetakkan file gambar profil yang sesuai 1.png dan 2.png di direktori /home/user/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/src/main/webapp/resource. Jika layanan gambar profil tidak dikonfigurasi, pengguna klien seluler tidak akan memiliki gambar profil. Hal ini tidak memengaruhi fitur lainnya.
VOD_REGIONID
Ya
Wilayah tempat layanan VOD berada. Dalam contoh ini, wilayahnya adalah cn-shanghai.
policy
Ya
Batasan izin tambahan yang ditambahkan saat peran diasumsikan. Untuk informasi selengkapnya, lihat Gunakan kebijakan RAM untuk otorisasi kustom.
CALLBACK_PRIVETEKEY
Ya
Kunci autentikasi dalam konfigurasi autentikasi callback. Untuk informasi selengkapnya, lihat Pengaturan Callback.
CALLBACK_NAME
Ya
URL callback, yaitu http://<Alamat IP Publik instans ECS>:8080/vodcallback/callback. Dalam contoh ini, URL-nya adalah http://10.10.10.101:8080/vodcallback/callback.
AUDIT_SETTINGS_FLAG
Ya
Pengaturan tinjauan. Nilai default adalah on. Nilai yang valid:
on: review-before-publish.
off: publikasi-sebelum-tinjauan.
package_name
Ya
Nama paket yang valid di interceptor. Pisahkan beberapa nama paket dengan koma. Nilai default adalah IOS,ANDROID,TEST,com.aliyun.apsara.svideo,com.aliyun.apsaravideo,com.aliyun.solution.longvideo.
Catatancom.aliyun.apsara.svideo adalah nama paket klien Android dalam contoh ini.
Jika Identifier Bundle untuk klien iOS sudah terdaftar, klien gagal berjalan. Anda harus menyesuaikan Identifier Bundle, seperti com.<Nama Perusahaan>.<Nama Proyek>, menggunakannya untuk menandatangani klien iOS, dan menambahkannya ke parameter package_name untuk memastikan akses yang valid.
Interceptor hanya mengizinkan aplikasi seluler dengan nama paket yang valid untuk mengakses server. Jika tidak, permintaan dari klien seluler gagal. Misalnya, pesan kesalahan "Permintaan gagal: dilarang (403)" dikembalikan.
Tekan tombol Esc, masukkan :wq!, lalu tekan Enter untuk menyimpan perubahan dan keluar.
Jalankan layanan.
Kompilasi dan kemas.
cd /home/user/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226
mvn clean package -Dmaven.test.skip=true
CatatanJika Maven belum diinstal, jalankan apt install maven untuk menginstalnya.
Waktu yang diperlukan untuk pengemasan tergantung pada bandwidth dan kinerja server. Dalam contoh ini, pengemasan pertama memakan waktu sekitar 30 menit.
Setelah pengemasan selesai, file sdk-api-0.0.1-SNAPSHOT.jar dihasilkan di direktori /home/user/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/target/.
Sebarkan paket JAR dan mulai layanan.
cd /home/user/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/target
nohup java -jar sdk-api-0.0.1-SNAPSHOT.jar &
CatatanSaat perintah dijalankan, prompt nohup muncul. Tekan Enter untuk menjalankan program di latar belakang.
Setelah perintah dijalankan, file log nohup.out dihasilkan di direktori saat ini. Jalankan perintah cat nohup.out untuk melihat log. Jika log berisi
start success, layanan telah berhasil dimulai.Jika instans ECS Anda memiliki memori rendah dan Anda perlu mengemas ulang serta menyebarkan kode sumber sisi server, jalankan perintah jps untuk menemukan ID proses (PID) program JAR saat ini. Kemudian, jalankan kill -9 <PID> untuk menghentikan proses. Anda kemudian dapat mengemas ulang dan menyebarkan kode sumber. Jika tidak, proses pengemasan mungkin gagal karena memori tidak mencukupi.