Topik ini menyediakan contoh terperinci tentang cara menggunakan SDK unggah sisi server untuk Python guna mengunggah berbagai file media ke ApsaraVideo VOD.
Ikhtisar
SDK unggah Python mengikuti proses umum SDK sisi server ApsaraVideo VOD. Untuk informasi lebih lanjut, lihat Proses unggah. Langkah-langkah dasar penggunaan SDK unggah Python adalah sebagai berikut:
-
Penuhi prasyaratnya. Untuk informasi lebih lanjut, lihat Prasyarat.
-
Integrasikan SDK unggah Python. Untuk informasi lebih lanjut, lihat Integrasikan Python upload SDK.
-
Implementasikan logika unggah. Langkah ini mencakup konfigurasi informasi unggah.
-
Untuk unggah audio dan video, lihat Skenario 1: Unggah file audio dan video.
-
Untuk unggah gambar, lihat Skenario 2: Unggah gambar.
-
Untuk unggah aset media pendukung, lihat Skenario 3: Unggah aset media pendukung.
-
-
Titik akhir default untuk SDK unggah Python adalah
cn-shanghai(Shanghai). Untuk mengunggah file media ke wilayah lain, Anda dapat menentukan wilayah tersebut menggunakanApiRegiondalamAliyunVodUploader.py. Untuk informasi lebih lanjut tentang titik akhir yang didukung oleh ApsaraVideo VOD, lihat Endpoints.Contoh berikut menunjukkan cara mengatur wilayah unggah ke
cn-beijing(Beijing):self.setApiRegion('cn-beijing')
Prasyarat
-
ApsaraVideo VOD telah diaktifkan. Untuk informasi lebih lanjut, lihat Aktifkan ApsaraVideo VOD.
-
Pengaturan sistem yang diperlukan untuk unggah, termasuk jalur penyimpanan di wilayah tertentu dan pengaturan callback, telah dikonfigurasi. Untuk informasi lebih lanjut, lihat Kelola bucket penyimpanan dan Konfigurasi callback.
-
RAM user telah dibuat dan digunakan untuk mengakses ApsaraVideo VOD. Untuk mencegah risiko keamanan akibat kebocoran pasangan AccessKey Akun Alibaba Cloud Anda, kami menyarankan agar Anda membuat RAM user dan memberikan izin yang diperlukan untuk mengakses ApsaraVideo VOD kepada RAM user tersebut. Kemudian, Anda dapat menggunakan AccessKey pair RAM user tersebut untuk mengakses ApsaraVideo VOD. Untuk informasi lebih lanjut, lihat Buat RAM user dan berikan izin.
-
Konfigurasikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET. Untuk informasi lebih lanjut, lihat Konfigurasi variabel lingkungan di Linux, macOS, dan Windows.
Penting-
Pasangan AccessKey Akun Alibaba Cloud memiliki izin atas semua operasi API. Gunakan pasangan AccessKey RAM user untuk memanggil operasi API atau melakukan O&M rutin.
-
Jangan hard-code ID AccessKey dan Rahasia AccessKey Anda dalam kode proyek. Jika bocor, semua sumber daya dalam akun Anda akan dikompromikan.
-
-
Opsional. Role dibuat untuk RAM user dan role tersebut diberikan izin yang diperlukan untuk mengakses ApsaraVideo VOD jika Anda ingin mengakses ApsaraVideo VOD menggunakan Security Token Service (STS). Untuk informasi lebih lanjut, lihat Dapatkan token STS.
Integrasikan Python upload SDK
-
Untuk deskripsi terperinci struktur direktori upload SDK, lihat Struktur direktori.
-
Topik ini menggunakan pengguna biasa sebagai contoh untuk menjelaskan operasinya.
-
Jalankan perintah berikut untuk menginstal paket dependensi.
sudo pip install aliyun-python-sdk-core
sudo pip install aliyun-python-sdk-vod
sudo pip install oss2
CatatanJika Anda menggunakan Python 3, ubah sudo pip install aliyun-python-sdk-core menjadi sudo pip install aliyun-python-sdk-core-v3. Jika Anda memiliki beberapa versi Python yang terinstal, Anda dapat menggunakan perintah `pip3`. Jika mengalami masalah integrasi, lihat FAQ untuk memecahkan masalah tersebut.
-
Unduh Python upload SDK dan kode contoh.
-
Versi SDK: 1.3.2.2
-
Tanggal pembaruan: 2022-02-24
-
Alamat unduh: Kode sumber SDK dan demo V1.3.2.2
-
-
Ekstrak VodUploadSDK-Python_1.3.*.zip dan salin folder voduploadsdk dari direktori VodUploadSDK-Python_1.3.* ke direktori proyek lokal Anda (disarankan) atau direktori site-packages.
Perbarui Python upload SDK
Jika Anda menemukan bahwa API baru atau fitur baru dari API yang sudah ada tidak tersedia di SDK Anda saat ini, perbarui SDK ke versi terbaru.
-
Jalankan perintah berikut untuk memperbarui paket dependensi.
sudo pip install --upgrade aliyun-python-sdk-vod
sudo pip install --upgrade oss2
-
Unduh Python upload SDK terbaru dan timpa file SDK lokal. Untuk informasi lebih lanjut, lihat Unduhan SDK.
CatatanAnda dapat membuka file ChangeLog.txt di direktori voduploadsdk untuk melihat nomor versi SDK saat ini dan tanggal rilisnya.
Struktur direktori Python upload SDK
Direktori voduploadsdk
-
AliyunVodUtils.py
Direktori
Deskripsi
AliyunVodLog
Kelas log upload SDK. Diimplementasikan berdasarkan logging.
AliyunVodUtils
Kelas utilitas upload SDK.
AliyunVodException
Kelas exception upload SDK. Menyediakan penanganan exception terpadu. Anda dapat menangkap exception ini secara eksternal.
-
UploadVideoRequest.py
Direktori
Deskripsi
UploadVideoRequest
Kelas permintaan untuk mengunggah video. Untuk informasi lebih lanjut tentang field-nya, lihat CreateUploadVideo.
-
UploadImageRequest.py
Direktori
Deskripsi
UploadImageRequest
Kelas permintaan untuk mengunggah gambar. Untuk informasi lebih lanjut tentang field-nya, lihat CreateUploadImage.
-
UploadAttachedMediaRequest.py
Direktori
Deskripsi
UploadAttachedMediaRequest
Kelas permintaan untuk mengunggah aset media pendukung. Untuk informasi lebih lanjut tentang field-nya, lihat CreateUploadAttachedMedia.
-
AliyunVodUploader.py
Direktori
Deskripsi
uploadLocalVideo
API untuk mengunggah video lokal.
uploadWebVideo
API untuk mengunggah video web.
uploadLocalM3u8
Mengunggah video M3U8 lokal.
uploadWebM3u8
Mengunggah video M3U8 web.
uploadImage
Mengunggah file gambar lokal atau web.
uploadAttachedMedia
Mengunggah file aset media pendukung lokal atau web.
parseWebM3u8
Mengurai informasi shard dari file M3U8 web.
parseLocalM3u8
Mengurai informasi shard dari file M3U8 lokal.
setApiRegion
Mengatur titik akhir untuk VOD. Nilai default-nya adalah cn-shanghai (Shanghai). Wilayah di luar Tiongkok, seperti ap-southeast-1 (Singapura), juga didukung. Untuk informasi lebih lanjut, lihat ID wilayah VOD.
setMultipartUpload
Mengatur ambang batas dan ukuran bagian untuk unggah multi-bagian.
uploadProgressCallback
Fungsi callback untuk progres unggah. Anda dapat menulis ulang fungsi ini.
setEnableCrc
Menentukan apakah akan mengaktifkan pemeriksaan redundansi siklik (CRC) selama unggah. Secara default diaktifkan.
-
ChangeLog.txt: Berisi riwayat rilis. Baris pertama menunjukkan nomor versi SDK saat ini dan tanggal rilisnya.
Direktori samples
-
uploadVideo.py: Kode contoh untuk mengunggah video.
-
uploadImage.py: Kode contoh untuk mengunggah gambar.
-
uploadAttachedMedia.py: Kode contoh untuk mengunggah file aset media pendukung.
Skenario 1: Unggah file audio dan video
Unggah file biasa
Anda dapat mengunggah jenis file audio dan video berikut:
-
File lokal: Menggunakan unggah multi-bagian. Ukuran maksimum satu file adalah 48,8 TB. Unggah yang dapat dilanjutkan tidak didukung. Untuk informasi lebih lanjut, lihat fungsi `testUploadLocalVideo` dalam kode contoh.
-
File web: Anda dapat menentukan URL file untuk unggah. Ukuran maksimum satu file adalah 48,8 TB. Metode ini memerlukan pengunduhan file web ke disk lokal sebelum diunggah. Pastikan disk lokal Anda memiliki ruang yang cukup. Untuk informasi lebih lanjut, lihat fungsi `testUploadWebVideo` dalam kode contoh.
Unggah file M3U8
Akselerasi unggah
Untuk mengunggah file besar (tingkat GB atau TB) atau melakukan unggah lintas wilayah, seperti mengunggah video dari Tiongkok daratan ke alamat penyimpanan di wilayah penyimpanan Singapura, Anda dapat mengaktifkan fitur akselerasi unggah. Untuk informasi lebih lanjut, lihat Aktifkan akselerasi unggah. Setelah mengaktifkan fitur ini, Anda harus menambahkan pasangan kunci-nilai AccelerateConfig key-value ke objek UserData dalam konfigurasi unggah. Jika objek `UserData` tidak ada, Anda harus membuatnya. Berikut contohnya:
uploadVideoRequest.setUserData("{\"AccelerateConfig\":{\"Type\":\"oss\",\"Domain\":\"****Bucket.oss-accelerate.aliyuncs.com\"}}");
Deskripsi parameter
|
Nama |
Tipe |
Deskripsi |
|
Type |
string |
Jenis akselerasi unggah yang akan diaktifkan. Hanya `oss` yang didukung. |
|
Domain |
string |
Nama domain yang dipercepat dari bucket Anda. Protokol default-nya adalah HTTPS. Catatan
Gunakan nama domain yang dipercepat yang ditetapkan setelah aktivasi, misalnya, `vod-*******.oss-accelerate.aliyuncs.com`. |
Skenario 2: Unggah gambar
Skenario 3: Unggah aset media pendukung
FAQ
Saat Anda menggunakan kode contoh untuk mengunggah aliran video web, jika muncul error ERROR:root:Download fail: [Errno 2] No such file or directory, Anda dapat menyelesaikan masalah ini dengan membuat folder dlfiles secara manual di direktori yang sama dengan folder voduploadsdk.
/Users/fulin/Documents/Code/PythonProject/VodPythonUploadSdkTest/venv/bin/python /Users/fulin/Documents/Code/PythonProject/VodPythonUploadSdkTest/uploadVideo.py
[2022-02-16 20:54:59]Download https://img.a... To /Users/fulin/Documents/Code/PythonProject/
/Users/fulin... : InsecureRequestWarning: Unverifi...
warnings.warn(...)
[2022-02-16 20:54:59]Download fail: [Errno 2] No such file or directory: '/Users/fulin/Documents/Code/PythonProject/VodPythonUploadSdkTest/dlfiles/115...
Type: FileDownloadError, Code: Download File Error, Message: , HTTPStatus: NULL, RequestId: NULL
ERROR:root:Download fail: [Errno 2] No such file or directory: '/Users/fulin/Documents/Code/PythonProject/VodPythonUploadSdkTest/dlfiles/115310cd4d...
Process finished with exit code 0