全部产品
Search
文档中心

ApsaraVideo VOD:Upload media

更新时间:Jan 29, 2026

ApsaraVideo VOD menyediakan serangkaian lengkap API upload sisi server yang memungkinkan pengembang mengunggah file media dengan berbagai metode. Topik ini menjelaskan skenario dan menyediakan contoh kode untuk memanggil API upload sisi server menggunakan kit pengembangan perangkat lunak (SDK) Java.

Skenario

Penting

Topik ini hanya menyediakan contoh pemanggilan operasi API, seperti operasi untuk mendapatkan kredensial upload dan URL upload. Tabel berikut menjelaskan skenario di mana operasi API tersebut dapat dipanggil untuk mengunggah file media.

Operasi API

Skenario

CreateUploadVideo

  • Jika Anda mengunggah file media menggunakan SDK Object Storage Service (OSS), Anda harus menggunakan SDK ApsaraVideo VOD dan memanggil operasi untuk mendapatkan kredensial upload dan URL upload. URL dan kredensial yang diperoleh dikodekan dalam Base64 dan harus didekodekan sebelum digunakan untuk menginisialisasi instans OSSClient. Untuk informasi selengkapnya, lihat Upload menggunakan SDK OSS. Topik tersebut menyediakan kode contoh lengkap untuk mengunggah file media menggunakan SDK OSS untuk Java. Untuk informasi lebih lanjut tentang kode contoh dalam bahasa lain, lihat Unggah file media menggunakan API ApsaraVideo VOD.

  • Jika Anda mengunggah file media dari client menggunakan SDK upload, Anda perlu mengintegrasikan SDK ApsaraVideo VOD dan memanggil operasi untuk mendapatkan atau memperbarui kredensial upload dan URL upload. Anda dapat mengeluarkan URL dan kredensial kepada client tanpa perlu mendekodekannya. Untuk informasi selengkapnya, lihat Upload dari client.

RefreshUploadVideo

CreateUploadImage

CreateUploadAttachedMedia

UploadMediaByURL

  • Anda dapat memanggil operasi UploadMediaByURL untuk mengunggah file media menggunakan URL file sumber. Dengan cara ini, Anda tidak perlu mengunduh file media ke server atau perangkat Anda sebelum menggunakan SDK upload untuk mengunggah file media ke ApsaraVideo VOD.

    Catatan

    Pekerjaan upload berbasis URL bersifat asinkron. Setelah Anda mengirim pekerjaan upload berbasis URL, proses tersebut mungkin memerlukan waktu berjam-jam, bahkan berhari-hari untuk selesai.

  • Anda dapat memanggil operasi GetURLUploadInfos untuk menanyakan progres pekerjaan upload berbasis URL.

GetURLUploadInfos

Register media assets

Prasyarat

  • Instal SDK. Untuk informasi selengkapnya, lihat Instalasi.

  • Inisialisasi instans client. Untuk informasi selengkapnya, lihat Inisialisasi.

Catatan pemanggilan API

  • Dalam topik ini, pasangan Kunci Akses digunakan untuk menginisialisasi instans client pada contoh kode.

  • Untuk deskripsi detail parameter API dan bidang yang dikembalikan, kunjungi Alibaba Cloud OpenAPI Portal dan lihat tab Documentation untuk setiap API.

  • Topik ini hanya menyediakan contoh kode untuk beberapa API kompleks. Untuk mendapatkan contoh kode SDK untuk API lainnya, buka Alibaba Cloud OpenAPI Portal. Pada tab Parameter Settings di sebelah kiri, masukkan informasi parameter yang diperlukan dan lakukan panggilan. Kemudian, pada tab SDK Sample di sebelah kanan, pilih versi SDK dan bahasa target untuk melihat serta mengunduh kode contoh.

  • Pemanggilan API dalam topik ini menggunakan SDK V1.0 sebagai contoh. Untuk mendapatkan contoh SDK V2.0, tentukan versi SDK yang sesuai saat Anda mengambil kode contoh dari Alibaba Cloud OpenAPI Portal.image.png

Contoh pemanggilan API

Dapatkan URL upload dan kredensial untuk file audio atau video

Panggil API CreateUploadVideo untuk mendapatkan URL upload dan kredensial untuk file audio atau video.

Tautan Alibaba Cloud OpenAPI Portal: CreateUploadVideo.

Kode contoh:

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.auth.AlibabaCloudCredentials;
import com.aliyuncs.auth.EnvironmentVariableCredentialsProvider;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.vod.model.v20170321.CreateUploadVideoRequest;
import com.aliyuncs.vod.model.v20170321.CreateUploadVideoResponse;

/**
 *
 * Contoh kode untuk mendapatkan kredensial upload untuk file audio atau video
 */
public class AudioOrVideoCreateUploadDemo {

    /** 
     * Baca Informasi AccessKey
     */
    public static DefaultAcsClient initVodClient() throws ClientException {
    // Wilayah tempat ApsaraVideo VOD diaktifkan.
    String regionId = "cn-shanghai";  
    // Pasangan AccessKey dari Akun Alibaba Cloud memiliki izin atas semua operasi API. Kami menyarankan agar Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
    // Kami sangat menyarankan agar Anda tidak menyematkan ID AccessKey dan Rahasia AccessKey secara langsung dalam kode proyek Anda. Jika tidak, pasangan AccessKey tersebut dapat bocor, yang mengancam keamanan semua sumber daya Anda.
    // Contoh ini menunjukkan cara membaca pasangan AccessKey dari variabel lingkungan untuk mengotentikasi akses API. Sebelum menjalankan kode contoh, konfigurasikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET.
    DefaultProfile profile = DefaultProfile.getProfile(regionId, System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
    DefaultAcsClient client = new DefaultAcsClient(profile);
    return client;
    }

    /**
     * Dapatkan URL upload dan kredensial untuk file audio atau video
     * @param client Client yang mengirim permintaan
     * @return CreateUploadVideoResponse Data respons untuk mendapatkan URL upload dan kredensial untuk file audio atau video
     * @throws Exception
     */
    public static CreateUploadVideoResponse createUploadVideo(DefaultAcsClient client) throws Exception {
        CreateUploadVideoRequest request = new CreateUploadVideoRequest();
        request.setTitle("this is a sample");
        request.setFileName("filename.mp4");

        // UserData: Pengaturan parameter yang didefinisikan pengguna. Atur parameter ini jika Anda perlu menentukan alamat webhook dan data transmisi langsung. Parameter ini opsional.
        //JSONObject userData = new JSONObject();

        // Pengaturan callback UserData
        // Pengaturan callback pesan. Jika parameter ini diatur, akan menggantikan pengaturan notifikasi event global.
        //JSONObject messageCallback = new JSONObject();
        // Atur alamat webhook
        //messageCallback.put("CallbackURL", "http://192.168.0.1/16");
        // Atur metode callback. Nilai default: http.
        //messageCallback.put("CallbackType", "http");
        //userData.put("MessageCallback", messageCallback.toJSONString());

        // Pengaturan data transmisi langsung UserData
        // Bidang ekstensi yang didefinisikan pengguna, yang diteruskan dalam callback.
        //JSONObject extend = new JSONObject();
        //extend.put("MyId", "user-defined-id");
        //userData.put("Extend", extend.toJSONString());

        //request.setUserData(userData.toJSONString());

        return client.getAcsResponse(request);
    }
  
    /** 
     * Contoh permintaan
     */
    public static void main(String[] argv) throws ClientException {
        try {
            DefaultAcsClient client = initVodClient();
            CreateUploadVideoResponse response = new CreateUploadVideoResponse();
            response = createUploadVideo(client);
            System.out.print("VideoId = " + response.getVideoId() + "\n");
            System.out.print("UploadAddress = " + response.getUploadAddress() + "\n");
            System.out.print("UploadAuth = " + response.getUploadAuth() + "\n");
            System.out.print("RequestId = " + response.getRequestId() + "\n");
        } catch (Exception e) {
            System.out.print("ErrorMessage = " + e.getLocalizedMessage());
        }
    }
}

Perbarui kredensial upload untuk file audio atau video

Panggil API RefreshUploadVideo untuk memperbarui kredensial upload untuk file audio atau video.

Tautan Alibaba Cloud OpenAPI Portal: RefreshUploadVideo.

Kode contoh:

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.auth.AlibabaCloudCredentials;
import com.aliyuncs.auth.EnvironmentVariableCredentialsProvider;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.vod.model.v20170321.RefreshUploadVideoRequest;
import com.aliyuncs.vod.model.v20170321.RefreshUploadVideoResponse;

/**
*
* Contoh kode untuk memperbarui kredensial upload untuk file audio atau video
*/
public class AudioOrVideoRefreshUploadDemo {

    /** 
     * Baca Informasi AccessKey
     */
    public static DefaultAcsClient initVodClient() throws ClientException {
    // Wilayah tempat ApsaraVideo VOD diaktifkan.
    String regionId = "cn-shanghai";  
    // Pasangan AccessKey dari Akun Alibaba Cloud memiliki izin atas semua operasi API. Kami menyarankan agar Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
    // Kami sangat menyarankan agar Anda tidak menyematkan ID AccessKey dan Rahasia AccessKey secara langsung dalam kode proyek Anda. Jika tidak, pasangan AccessKey tersebut dapat bocor, yang mengancam keamanan semua sumber daya Anda.
    // Contoh ini menunjukkan cara membaca pasangan AccessKey dari variabel lingkungan untuk mengotentikasi akses API. Sebelum menjalankan kode contoh, konfigurasikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET.
    DefaultProfile profile = DefaultProfile.getProfile(regionId, System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
    DefaultAcsClient client = new DefaultAcsClient(profile);
    return client;
    }

    /**
     * Perbarui kredensial upload untuk file audio atau video
     * @param client Client yang mengirim permintaan
     * @return RefreshUploadVideoResponse Data respons untuk memperbarui kredensial upload untuk file audio atau video
     * @throws Exception
     */
    public static RefreshUploadVideoResponse refreshUploadVideo(DefaultAcsClient client) throws Exception {
        RefreshUploadVideoRequest request = new RefreshUploadVideoRequest();
        // ID file audio atau video
        request.setVideoId("<VideoId>");
        return client.getAcsResponse(request);
    }

    /** 
     * Contoh permintaan
     */
    public static void main(String[] argv)  {

        try {
            DefaultAcsClient client = initVodClient();
            RefreshUploadVideoResponse response = refreshUploadVideo(client);
            System.out.print("VideoId = " + response.getVideoId() + "\n");
            System.out.print("UploadAddress = " + response.getUploadAddress() + "\n");
            System.out.print("UploadAuth = " + response.getUploadAuth() + "\n");
            System.out.print("RequestId = " + response.getRequestId() + "\n");
        } catch (Exception e) {
            System.out.print("ErrorMessage = " + e.getLocalizedMessage());
        }
    }
}

Dapatkan URL upload dan kredensial untuk gambar

Panggil API CreateUploadImage untuk mendapatkan URL upload dan kredensial untuk gambar.

Tautan Alibaba Cloud OpenAPI Portal: CreateUploadImage.

Kode contoh:

import com.alibaba.fastjson.JSONObject;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.auth.AlibabaCloudCredentials;
import com.aliyuncs.auth.EnvironmentVariableCredentialsProvider;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.vod.model.v20170321.CreateUploadImageRequest;
import com.aliyuncs.vod.model.v20170321.CreateUploadImageResponse;

/**
 * Contoh kode untuk mendapatkan kredensial upload untuk gambar
 *
 */
public class ImageCreateUploadDemo {

    /** 
     * Baca Informasi AccessKey
     */
    public static DefaultAcsClient initVodClient() throws ClientException {
    // Wilayah tempat ApsaraVideo VOD diaktifkan.
    String regionId = "cn-shanghai";  
    // Pasangan AccessKey dari Akun Alibaba Cloud memiliki izin atas semua operasi API. Kami menyarankan agar Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
    // Kami sangat menyarankan agar Anda tidak menyematkan ID AccessKey dan Rahasia AccessKey secara langsung dalam kode proyek Anda. Jika tidak, pasangan AccessKey tersebut dapat bocor, yang mengancam keamanan semua sumber daya Anda.
    // Contoh ini menunjukkan cara membaca pasangan AccessKey dari variabel lingkungan untuk mengotentikasi akses API. Sebelum menjalankan kode contoh, konfigurasikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET.
    DefaultProfile profile = DefaultProfile.getProfile(regionId, System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
    DefaultAcsClient client = new DefaultAcsClient(profile);
    return client;
    }

    /**
     * Dapatkan URL upload dan kredensial untuk gambar
     * @param client Client yang mengirim permintaan
     * @return CreateUploadImageResponse Data respons untuk mendapatkan URL upload dan kredensial untuk gambar
     * @throws Exception
     */
    public static CreateUploadImageResponse createUploadImage(DefaultAcsClient client) throws Exception {
        CreateUploadImageRequest request = new CreateUploadImageRequest();
        // Atur tipe gambar
        request.setImageType("default");
        // Atur ekstensi nama file gambar
        request.setImageExt("gif");
        // Atur judul gambar
        request.setTitle("this is a sample");

        // UserData: Pengaturan parameter yang didefinisikan pengguna. Atur parameter ini jika Anda perlu menentukan alamat webhook dan data transmisi langsung. Parameter ini opsional.
        JSONObject userData = new JSONObject();

        // Pengaturan callback UserData
        // Pengaturan callback pesan. Jika parameter ini diatur, akan menggantikan pengaturan notifikasi event global.
        JSONObject messageCallback = new JSONObject();
        // Atur alamat webhook
        messageCallback.put("CallbackURL", "http://192.168.0.0/16");
        // Atur metode callback. Nilai default: http.
        messageCallback.put("CallbackType", "http");
        userData.put("MessageCallback", messageCallback.toJSONString());

        JSONObject extend = new JSONObject();
        extend.put("MyId", "user-defined-id");
        userData.put("Extend", extend.toJSONString());

        request.setUserData(userData.toJSONString());

        return client.getAcsResponse(request);
    }

    /** 
     * Contoh permintaan
     */
    public static void main(String[] argv)  {

        try {
            DefaultAcsClient client = initVodClient();
            CreateUploadImageResponse response = createUploadImage(client);
            System.out.print("ImageId = " + response.getImageId() + "\n");
            System.out.print("ImageURL = " + response.getImageURL() + "\n");
            System.out.print("UploadAddress = " + response.getUploadAddress() + "\n");
            System.out.print("UploadAuth = " + response.getUploadAuth() + "\n");
            System.out.print("RequestId = " + response.getRequestId() + "\n");
        } catch (Exception e) {
            System.out.print("ErrorMessage = " + e.getLocalizedMessage());
        }
    }
}

Dapatkan URL upload dan kredensial untuk aset media pendukung

Panggil API CreateUploadAttachedMedia untuk mendapatkan URL upload dan kredensial untuk aset media pendukung.

Tautan Alibaba Cloud OpenAPI Portal: CreateUploadAttachedMedia.

Kode contoh:

import com.alibaba.fastjson.JSONObject;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.auth.AlibabaCloudCredentials;
import com.aliyuncs.auth.EnvironmentVariableCredentialsProvider;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.vod.model.v20170321.CreateUploadAttachedMediaRequest;
import com.aliyuncs.vod.model.v20170321.CreateUploadAttachedMediaResponse;

/**
 * Contoh kode untuk mendapatkan kredensial upload untuk aset media pendukung
 *
 */
public class AttachedMediaCreateUploadDemo {

     /** 
     * Baca Informasi AccessKey
     */
    public static DefaultAcsClient initVodClient() throws ClientException {
    // Wilayah tempat ApsaraVideo VOD diaktifkan.
    String regionId = "cn-shanghai";
    // Pasangan AccessKey dari Akun Alibaba Cloud memiliki izin atas semua operasi API. Kami menyarankan agar Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
    // Kami sangat menyarankan agar Anda tidak menyematkan ID AccessKey dan Rahasia AccessKey secara langsung dalam kode proyek Anda. Jika tidak, pasangan AccessKey tersebut dapat bocor, yang mengancam keamanan semua sumber daya Anda.
    // Contoh ini menunjukkan cara membaca pasangan AccessKey dari variabel lingkungan untuk mengotentikasi akses API. Sebelum menjalankan kode contoh, konfigurasikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET.
    DefaultProfile profile = DefaultProfile.getProfile(regionId, System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
    DefaultAcsClient client = new DefaultAcsClient(profile);
    return client;
    }

    /**
     * Dapatkan URL upload dan kredensial untuk aset media pendukung (seperti Watermark atau caption)
     * @param client Client yang mengirim permintaan
     * @return CreateUploadAttachedMediaResponse Data respons untuk mendapatkan URL upload dan kredensial untuk aset media pendukung
     * @throws Exception
     */
    public static CreateUploadAttachedMediaResponse createUploadAttachedMedia(DefaultAcsClient client) throws Exception {
        CreateUploadAttachedMediaRequest request = new CreateUploadAttachedMediaRequest();
        // Atur tipe bisnis
        request.setBusinessType("watermark");
        // Atur ekstensi nama file
        request.setMediaExt("gif");
        // Atur judul
        request.setTitle("this is a sample");

        // UserData: Pengaturan parameter yang didefinisikan pengguna. Atur parameter ini jika Anda perlu menentukan alamat webhook dan data transmisi langsung. Parameter ini opsional.
        JSONObject userData = new JSONObject();

        // Pengaturan callback UserData
        // Pengaturan callback pesan. Jika parameter ini diatur, akan menggantikan pengaturan notifikasi event global.
        JSONObject messageCallback = new JSONObject();
        // Atur alamat webhook
        messageCallback.put("CallbackURL", "http://192.168.0.0/16");
        // Atur tipe callback. Nilai default: http.
        messageCallback.put("CallbackType", "http");
        userData.put("MessageCallback", messageCallback.toJSONString());

        JSONObject extend = new JSONObject();
        extend.put("MyId", "user-defined-id");
        userData.put("Extend", extend.toJSONString());

        request.setUserData(userData.toJSONString());

        return client.getAcsResponse(request);
    }
    /** 
     * Contoh permintaan
     */
    public static void main(String[] argv) {

        try {
            DefaultAcsClient client = initVodClient();
            CreateUploadAttachedMediaResponse response = createUploadAttachedMedia(client);
            System.out.print("mediaId = " + response.getMediaId() + "\n");
            System.out.print("mediaURL = " + response.getMediaURL() + "\n");
            System.out.print("UploadAddress = " + response.getUploadAddress() + "\n");
            System.out.print("UploadAuth = " + response.getUploadAuth() + "\n");
            System.out.print("RequestId = " + response.getRequestId() + "\n");
        } catch (Exception e) {
            System.out.print("ErrorMessage = " + e.getLocalizedMessage());
        }
    }
}

Upload batch berdasarkan URL

Panggil API UploadMediaByURL untuk melakukan upload batch berdasarkan URL.

Tautan Alibaba Cloud OpenAPI Portal: UploadMediaByURL.

Kode contoh:

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.auth.AlibabaCloudCredentials;
import com.aliyuncs.auth.EnvironmentVariableCredentialsProvider;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.vod.model.v20170321.UploadMediaByURLRequest;
import com.aliyuncs.vod.model.v20170321.UploadMediaByURLResponse;

import java.net.URLEncoder;

/**
 * Contoh kode untuk fitur upload batch berdasarkan URL
 *
 */
public class AudioOrVideoUploadByUrl {

    /** 
     * Baca Informasi AccessKey
     */
    public static DefaultAcsClient initVodClient() throws ClientException {
    // Wilayah tempat ApsaraVideo VOD diaktifkan.
    String regionId = "cn-shanghai"; 
    // Pasangan AccessKey dari Akun Alibaba Cloud memiliki izin atas semua operasi API. Kami menyarankan agar Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
    // Kami sangat menyarankan agar Anda tidak menyematkan ID AccessKey dan Rahasia AccessKey secara langsung dalam kode proyek Anda. Jika tidak, pasangan AccessKey tersebut dapat bocor, yang mengancam keamanan semua sumber daya Anda.
    // Contoh ini menunjukkan cara membaca pasangan AccessKey dari variabel lingkungan untuk mengotentikasi akses API. Sebelum menjalankan kode contoh, konfigurasikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET.
    DefaultProfile profile = DefaultProfile.getProfile(regionId, System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
    DefaultAcsClient client = new DefaultAcsClient(profile);
    return client;
    }

    /**
     * Upload batch berdasarkan URL
     *
     * @param client Client yang mengirim permintaan
     * @return UploadMediaByURLResponse Data respons untuk upload batch berdasarkan URL
     * @throws Exception
     */
    public static UploadMediaByURLResponse uploadMediaByURL(DefaultAcsClient client) throws Exception {
        UploadMediaByURLRequest request = new UploadMediaByURLRequest();
        String url = "http://video_01.mp4";
        String encodeUrl = URLEncoder.encode(url, "UTF-8");
        // URL file sumber video
        request.setUploadURLs(encodeUrl);

        // Metadata video yang akan diunggah
        JSONObject uploadMetadata = new JSONObject();
        // URL file sumber video yang akan diunggah. Harus sesuai dengan URL dalam UploadURLs agar berlaku.
        uploadMetadata.put("SourceUrl", encodeUrl);
        // Judul video
        uploadMetadata.put("Title", "upload by url sample");

        JSONArray uploadMetadataList = new JSONArray();
        uploadMetadataList.add(uploadMetadata);
        request.setUploadMetadatas(uploadMetadataList.toJSONString());

        // UserData: Pengaturan parameter yang didefinisikan pengguna. Atur parameter ini jika Anda perlu menentukan alamat webhook dan data transmisi langsung. Parameter ini opsional.
        JSONObject userData = new JSONObject();

        // Pengaturan callback UserData
        // Pengaturan callback pesan. Jika parameter ini diatur, akan menggantikan pengaturan notifikasi event global.
        JSONObject messageCallback = new JSONObject();
        // Atur alamat webhook
        messageCallback.put("CallbackURL", "http://192.168.0.0/16");
        // Atur tipe callback. Nilai default: http.
        messageCallback.put("CallbackType", "http");
        userData.put("MessageCallback", messageCallback.toJSONString());

        JSONObject extend = new JSONObject();
        extend.put("MyId", "user-defined-id");
        userData.put("Extend", extend.toJSONString());

        request.setUserData(userData.toJSONString());

        return client.getAcsResponse(request);
    }

    /** 
     * Contoh permintaan
     */
    public static void main(String[] argv) {

        try {
            DefaultAcsClient client = initVodClient();
            UploadMediaByURLResponse response = uploadMediaByURL(client);
            System.out.print("UploadJobs = " + JSON.toJSONString(response.getUploadJobs()) + "\n");
            System.out.print("RequestId = " + response.getRequestId() + "\n");
        } catch (Exception e) {
            System.out.print("ErrorMessage = " + e.getLocalizedMessage());
        }
    }

}

Daftarkan informasi aset media

Panggil API RegisterMedia untuk mendaftarkan informasi aset media.

Tautan Alibaba Cloud OpenAPI Portal: RegisterMedia.

Kode contoh:

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.auth.AlibabaCloudCredentials;
import com.aliyuncs.auth.EnvironmentVariableCredentialsProvider;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.vod.model.v20170321.RegisterMediaRequest;
import com.aliyuncs.vod.model.v20170321.RegisterMediaResponse;

/**
 * Contoh kode untuk pendaftaran aset media
 *
 */
public class MediaRegisterDemo {

    /** 
     * Baca Informasi AccessKey
     */
    public static DefaultAcsClient initVodClient() throws ClientException {
    // Wilayah tempat ApsaraVideo VOD diaktifkan.
    String regionId = "cn-shanghai";  
    // Pasangan AccessKey dari Akun Alibaba Cloud memiliki izin atas semua operasi API. Kami menyarankan agar Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
    // Kami sangat menyarankan agar Anda tidak menyematkan ID AccessKey dan Rahasia AccessKey secara langsung dalam kode proyek Anda. Jika tidak, pasangan AccessKey tersebut dapat bocor, yang mengancam keamanan semua sumber daya Anda.
    // Contoh ini menunjukkan cara membaca pasangan AccessKey dari variabel lingkungan untuk mengotentikasi akses API. Sebelum menjalankan kode contoh, konfigurasikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET.
    DefaultProfile profile = DefaultProfile.getProfile(regionId, System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
    DefaultAcsClient client = new DefaultAcsClient(profile);
    return client;
    }

    /**
     * Daftarkan informasi aset media
     * @param client Client yang mengirim permintaan
     * @return RegisterMediaResponse Data respons untuk mendaftarkan informasi aset media
     * @throws Exception
     */
    public static RegisterMediaResponse registerMedia(DefaultAcsClient client) throws Exception {
        RegisterMediaRequest request = new RegisterMediaRequest();
        JSONArray metaDataArray = new JSONArray();
        JSONObject metaData = new JSONObject();
        // Judul
        metaData.put("Title", "this is a sample");
        // URL file sumber. Nama file harus unik secara global. Jika Anda menambahkan file dengan nama yang sama, file tersebut akan dikaitkan dengan ID media unik.
        metaData.put("FileURL", "https://192.168.0.0/16.oss-cn-shanghai.aliyuncs.com/vod_sample.mp4");
        // Tentukan metadata aset media yang akan didaftarkan
        metaDataArray.add((metaData));
        request.setRegisterMetadatas(metaDataArray.toJSONString());
        return client.getAcsResponse(request);
    }

    /** 
     * Contoh permintaan
     */
    public static void main(String[] argv)  {

        try {
            DefaultAcsClient client = initVodClient();
            RegisterMediaResponse response = registerMedia(client);
            if (response.getFailedFileURLs() != null && response.getFailedFileURLs().size() > 0) {
                for (String fileURL : response.getFailedFileURLs()) {
                    System.out.print("FailedFileURL = " + fileURL + "\n");
                }
            }
            if (response.getRegisteredMediaList() != null && response.getRegisteredMediaList().size() > 0) {
                for (RegisterMediaResponse.RegisteredMedia registeredMedia : response.getRegisteredMediaList()) {
                    System.out.print("MediaId = " + registeredMedia.getMediaId());
                    System.out.print("FileURL = " + registeredMedia.getFileURL());
                    System.out.print("NewRegister = " + registeredMedia.getNewRegister());
                    System.out.print("RequestId = " + response.getRequestId() + "\n");
                }
            }
        } catch (Exception e) {
            System.out.print("ErrorMessage = " + e.getLocalizedMessage());
        }

    }

}

Dapatkan informasi upload URL

Panggil API GetURLUploadInfos untuk mengambil informasi upload URL.

Tautan Alibaba Cloud OpenAPI Portal: GetURLUploadInfos.

Kode contoh:

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.auth.AlibabaCloudCredentials;
import com.aliyuncs.auth.EnvironmentVariableCredentialsProvider;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.vod.model.v20170321.GetURLUploadInfosRequest;
import com.aliyuncs.vod.model.v20170321.GetURLUploadInfosResponse;
import org.apache.commons.lang3.StringUtils;

import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;

/**
 * Contoh kode untuk mendapatkan informasi upload URL
 */
public class URLUploadInfosGetDemo {
    
    /** 
     * Baca Informasi AccessKey
     */
    public static DefaultAcsClient initVodClient() throws ClientException {
    // Wilayah tempat ApsaraVideo VOD diaktifkan.
    String regionId = "cn-shanghai";  
    // Pasangan AccessKey dari Akun Alibaba Cloud memiliki izin atas semua operasi API. Kami menyarankan agar Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
    // Kami sangat menyarankan agar Anda tidak menyematkan ID AccessKey dan Rahasia AccessKey secara langsung dalam kode proyek Anda. Jika tidak, pasangan AccessKey tersebut dapat bocor, yang mengancam keamanan semua sumber daya Anda.
    // Contoh ini menunjukkan cara membaca pasangan AccessKey dari variabel lingkungan untuk mengotentikasi akses API. Sebelum menjalankan kode contoh, konfigurasikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET.
    DefaultProfile profile = DefaultProfile.getProfile(regionId, System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
    DefaultAcsClient client = new DefaultAcsClient(profile);
    return client;
    }

    /**
     * Dapatkan informasi upload URL
     *
     * @param client Client yang mengirim permintaan
     * @return GetURLUploadInfosResponse Data respons untuk mendapatkan informasi upload URL
     * @throws Exception
     */
    public static GetURLUploadInfosResponse getURLUploadInfos(DefaultAcsClient client) throws Exception {
        GetURLUploadInfosRequest request = new GetURLUploadInfosRequest();

        // Daftar URL video sumber. URL harus dikodekan dalam bentuk URL.
        String[] urls = {
                "http://exampleBucket****.cn-shanghai.aliyuncs.com/video_01.mp4",
                "http://exampleBucket****.cn-shanghai.aliyuncs.com/video_02.flv"
        };
        List<String> encodeUrlList = new ArrayList<String>();
        for (String url : urls) {
            encodeUrlList.add(URLEncoder.encode(url, "UTF-8"));
        }
        request.setUploadURLs(StringUtils.join(encodeUrlList, ','));
        // Daftar ID pekerjaan. Anda dapat memperoleh ID pekerjaan dari struktur PlayInfo yang dikembalikan oleh API GetPlayInfo.
        //request.setJobIds("exampleID1,exampleID2");

        return client.getAcsResponse(request);
    }

    /** 
     * Contoh permintaan
     */
    public static void main(String[] argv) {

        try {
            DefaultAcsClient client = initVodClient();
            GetURLUploadInfosResponse response = getURLUploadInfos(client);
            System.out.print("URLUploadInfoList = " + response.getURLUploadInfoList() + "\n");
            System.out.print("RequestId = " + response.getRequestId() + "\n");
        } catch (Exception e) {
            System.out.print("ErrorMessage = " + e.getLocalizedMessage());
        }
    }
}