すべてのプロダクト
Search
ドキュメントセンター

ApsaraVideo VOD:メディアのアップロード

最終更新日:Jan 29, 2026

ApsaraVideo VOD は、開発者がさまざまなメソッドを使用してメディアファイルをアップロードできる、サーバーサイドアップロード API の包括的なセットを提供します。このトピックでは、Java ソフトウェア開発キット (SDK) を使用してサーバーサイドアップロード API を呼び出す際の利用シーンとコード例について説明します。

利用シーン

重要

このトピックでは、アップロード認証情報とアップロード URL を取得する操作など、API 操作の呼び出し例のみを提供します。次の表に、API 操作を呼び出してメディアファイルをアップロードできる利用シーンを示します。

API 操作

利用シーン

CreateUploadVideo

  • Object Storage Service (OSS) SDK を使用してメディアファイルをアップロードする場合、ApsaraVideo VOD SDK を使用して、アップロード認証情報とアップロード URL を取得する操作を呼び出す必要があります。取得した URL と認証情報は Base64 エンコードされているため、OSSClient インスタンスを初期化する前にデコードする必要があります。詳細については、「OSS SDK を使用したアップロード」をご参照ください。上記のトピックでは、Java 向け OSS SDK を使用してメディアファイルをアップロードするための完全なサンプルコードを提供しています。他の言語のサンプルコードについては、「ApsaraVideo VOD API を使用したメディアファイルのアップロード」をご参照ください。

  • アップロード SDK を使用してクライアントからメディアファイルをアップロードする場合、ApsaraVideo VOD SDK を統合し、操作を呼び出してアップロード認証情報とアップロード URL を取得または更新する必要があります。URL と認証情報をデコードせずにクライアントに発行できます。詳細については、「クライアントからのアップロード」をご参照ください。

RefreshUploadVideo

CreateUploadImage

CreateUploadAttachedMedia

UploadMediaByURL

  • UploadMediaByURL 操作を呼び出して、ソースファイルの URL を使用してメディアファイルをアップロードできます。この方法では、アップロード SDK を使用してメディアファイルを ApsaraVideo VOD にアップロードする前に、メディアファイルをサーバーまたはデバイスにダウンロードする必要はありません。

    説明

    URL ベースのアップロードタスクは非同期です。URL ベースのアップロードタスクを送信した後、完了までに数時間、場合によっては数日かかることがあります。

  • GetURLUploadInfos 操作を呼び出して、URL ベースのアップロードタスクの進捗状況をクエリできます。

GetURLUploadInfos

メディアアセットの登録

前提条件

  • SDK をインストールします。詳細については、「インストール」をご参照ください。

  • クライアントインスタンスを初期化します。詳細については、「初期化」をご参照ください。

API 呼び出しの注意事項

  • このトピックでは、コード例で AccessKey ペアを使用してクライアントインスタンスを初期化します。

  • API パラメーターと返されるフィールドの詳細な説明については、Alibaba Cloud OpenAPI Portal にアクセスし、各 API の [ドキュメント] タブをご参照ください。

  • このトピックでは、一部の複雑な API のコード例のみを提供します。他の API の SDK コード例を取得するには、Alibaba Cloud OpenAPI Portal に移動します。左側の [パラメーター設定] タブで、必須パラメーター情報を入力して呼び出しを開始します。次に、右側の [SDK サンプル] タブで、SDK のバージョンと言語を選択してサンプルコードを表示およびダウンロードします。

  • このトピックの API 呼び出しでは、SDK V1.0 を例として使用します。V2.0 の SDK の例を取得するには、Alibaba Cloud OpenAPI Portal からサンプルコードを取得する際に、対応する SDK バージョンを指定してください。image.png

API 呼び出しの例

音声ファイルまたは動画ファイルのアップロード URL と認証情報の取得

CreateUploadVideo API を呼び出して、音声ファイルまたは動画ファイルのアップロード URL と認証情報を取得します。

Alibaba Cloud OpenAPI Portal リンク: CreateUploadVideo

サンプルコード:

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;

/**
 *
 * 音声ファイルまたは動画ファイルのアップロード認証情報を取得するためのサンプルコード
 */
public class AudioOrVideoCreateUploadDemo {

    /** 
     * AccessKey 情報を読み取ります
     */
    public static DefaultAcsClient initVodClient() throws ClientException {
    // ApsaraVideo VOD が有効化されているリージョン。
    String regionId = "cn-shanghai";  
    // Alibaba Cloud アカウントの AccessKey ペアは、すべての API 操作に対する権限を持っています。RAM ユーザーを使用して API 操作を呼び出すか、日常の O&M を実行することを推奨します。
    // プロジェクトコードに AccessKey ID と AccessKey Secret をハードコーディングしないことを強く推奨します。そうしないと、AccessKey ペアが漏洩し、すべてのリソースのセキュリティが脅かされる可能性があります。
    // この例では、環境変数から AccessKey ペアを読み取って API アクセスを認証する方法を示します。サンプルコードを実行する前に、ALIBABA_CLOUD_ACCESS_KEY_ID および 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;
    }

    /**
     * 音声ファイルまたは動画ファイルのアップロード URL と認証情報を取得します
     * @param client リクエストを送信するクライアント
     * @return CreateUploadVideoResponse 音声ファイルまたは動画ファイルのアップロード URL と認証情報を取得するための応答データ
     * @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: ユーザー定義のパラメーター設定。Webhook アドレスを指定し、パススルーデータを渡す必要がある場合にこのパラメーターを設定します。このパラメーターはオプションです。
        //JSONObject userData = new JSONObject();

        // UserData コールバック設定
        // メッセージコールバック設定。このパラメーターが設定されている場合、グローバルイベント通知設定がオーバーライドされます。
        //JSONObject messageCallback = new JSONObject();
        // Webhook アドレスを設定します
        //messageCallback.put("CallbackURL", "http://192.168.0.1/16");
        // コールバックメソッドを設定します。デフォルト値: http。
        //messageCallback.put("CallbackType", "http");
        //userData.put("MessageCallback", messageCallback.toJSONString());

        // UserData パススルーデータ設定
        // ユーザー定義の拡張フィールド。コールバックでパススルーされます。
        //JSONObject extend = new JSONObject();
        //extend.put("MyId", "user-defined-id");
        //userData.put("Extend", extend.toJSONString());

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

        return client.getAcsResponse(request);
    }
  
    /** 
     * リクエスト例
     */
    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());
        }
    }
}

音声ファイルまたは動画ファイルのアップロード認証情報のリフレッシュ

RefreshUploadVideo API を呼び出して、音声ファイルまたは動画ファイルのアップロード認証情報をリフレッシュします。

Alibaba Cloud OpenAPI Portal リンク: RefreshUploadVideo

サンプルコード:

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;

/**
*
* 音声ファイルまたは動画ファイルのアップロード認証情報をリフレッシュするためのサンプルコード
*/
public class AudioOrVideoRefreshUploadDemo {

    /** 
     * AccessKey 情報を読み取ります
     */
    public static DefaultAcsClient initVodClient() throws ClientException {
    // ApsaraVideo VOD が有効化されているリージョン。
    String regionId = "cn-shanghai";  
    // Alibaba Cloud アカウントの AccessKey ペアは、すべての API 操作に対する権限を持っています。RAM ユーザーを使用して API 操作を呼び出すか、日常の O&M を実行することを推奨します。
    // プロジェクトコードに AccessKey ID と AccessKey Secret をハードコーディングしないことを強く推奨します。そうしないと、AccessKey ペアが漏洩し、すべてのリソースのセキュリティが脅かされる可能性があります。
    // この例では、環境変数から AccessKey ペアを読み取って API アクセスを認証する方法を示します。サンプルコードを実行する前に、ALIBABA_CLOUD_ACCESS_KEY_ID および 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;
    }

    /**
     * 音声ファイルまたは動画ファイルのアップロード認証情報をリフレッシュします
     * @param client リクエストを送信するクライアント
     * @return RefreshUploadVideoResponse 音声ファイルまたは動画ファイルのアップロード認証情報をリフレッシュするための応答データ
     * @throws Exception
     */
    public static RefreshUploadVideoResponse refreshUploadVideo(DefaultAcsClient client) throws Exception {
        RefreshUploadVideoRequest request = new RefreshUploadVideoRequest();
        // 音声ファイルまたは動画ファイルの ID
        request.setVideoId("<VideoId>");
        return client.getAcsResponse(request);
    }

    /** 
     * リクエスト例
     */
    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());
        }
    }
}

イメージのアップロード URL と認証情報の取得

CreateUploadImage API を呼び出して、イメージのアップロード URL と認証情報を取得します。

Alibaba Cloud OpenAPI Portal リンク: CreateUploadImage

サンプルコード:

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;

/**
 * イメージのアップロード認証情報を取得するためのサンプルコード
 *
 */
public class ImageCreateUploadDemo {

    /** 
     * AccessKey 情報を読み取ります
     */
    public static DefaultAcsClient initVodClient() throws ClientException {
    // ApsaraVideo VOD が有効化されているリージョン。
    String regionId = "cn-shanghai";  
    // Alibaba Cloud アカウントの AccessKey ペアは、すべての API 操作に対する権限を持っています。RAM ユーザーを使用して API 操作を呼び出すか、日常の O&M を実行することを推奨します。
    // プロジェクトコードに AccessKey ID と AccessKey Secret をハードコーディングしないことを強く推奨します。そうしないと、AccessKey ペアが漏洩し、すべてのリソースのセキュリティが脅かされる可能性があります。
    // この例では、環境変数から AccessKey ペアを読み取って API アクセスを認証する方法を示します。サンプルコードを実行する前に、ALIBABA_CLOUD_ACCESS_KEY_ID および 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;
    }

    /**
     * イメージのアップロード URL と認証情報を取得します
     * @param client リクエストを送信するクライアント
     * @return CreateUploadImageResponse イメージのアップロード URL と認証情報を取得するための応答データ
     * @throws Exception
     */
    public static CreateUploadImageResponse createUploadImage(DefaultAcsClient client) throws Exception {
        CreateUploadImageRequest request = new CreateUploadImageRequest();
        // イメージタイプを設定します
        request.setImageType("default");
        // イメージのファイル名拡張子を設定します
        request.setImageExt("gif");
        // イメージのタイトルを設定します
        request.setTitle("this is a sample");

        // UserData: ユーザー定義のパラメーター設定。Webhook アドレスを指定し、パススルーデータを渡す必要がある場合にこのパラメーターを設定します。このパラメーターはオプションです。
        JSONObject userData = new JSONObject();

        // UserData コールバック設定
        // メッセージコールバック設定。このパラメーターが設定されている場合、グローバルイベント通知設定がオーバーライドされます。
        JSONObject messageCallback = new JSONObject();
        // Webhook アドレスを設定します
        messageCallback.put("CallbackURL", "http://192.168.0.0/16");
        // コールバックメソッドを設定します。デフォルト値: 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);
    }

    /** 
     * リクエスト例
     */
    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());
        }
    }
}

補助メディアアセットのアップロード URL と認証情報の取得

CreateUploadAttachedMedia API を呼び出して、補助メディアアセットのアップロード URL と認証情報を取得します。

Alibaba Cloud OpenAPI Portal リンク: CreateUploadAttachedMedia

サンプルコード:

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;

/**
 * 補助メディアアセットのアップロード認証情報を取得するためのサンプルコード
 *
 */
public class AttachedMediaCreateUploadDemo {

     /** 
     * AccessKey 情報を読み取ります
     */
    public static DefaultAcsClient initVodClient() throws ClientException {
    // ApsaraVideo VOD が有効化されているリージョン。
    String regionId = "cn-shanghai";
    // Alibaba Cloud アカウントの AccessKey ペアは、すべての API 操作に対する権限を持っています。RAM ユーザーを使用して API 操作を呼び出すか、日常の O&M を実行することを推奨します。
    // プロジェクトコードに AccessKey ID と AccessKey Secret をハードコーディングしないことを強く推奨します。そうしないと、AccessKey ペアが漏洩し、すべてのリソースのセキュリティが脅かされる可能性があります。
    // この例では、環境変数から AccessKey ペアを読み取って API アクセスを認証する方法を示します。サンプルコードを実行する前に、ALIBABA_CLOUD_ACCESS_KEY_ID および 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;
    }

    /**
     * 補助メディアアセット (ウォーターマークや字幕など) のアップロード URL と認証情報を取得します
     * @param client リクエストを送信するクライアント
     * @return CreateUploadAttachedMediaResponse 補助メディアアセットのアップロード URL と認証情報を取得するための応答データ
     * @throws Exception
     */
    public static CreateUploadAttachedMediaResponse createUploadAttachedMedia(DefaultAcsClient client) throws Exception {
        CreateUploadAttachedMediaRequest request = new CreateUploadAttachedMediaRequest();
        // ビジネスタイプを設定します
        request.setBusinessType("watermark");
        // ファイル名拡張子を設定します
        request.setMediaExt("gif");
        // タイトルを設定します
        request.setTitle("this is a sample");

        // UserData: ユーザー定義のパラメーター設定。Webhook アドレスを指定し、パススルーデータを渡す必要がある場合にこのパラメーターを設定します。このパラメーターはオプションです。
        JSONObject userData = new JSONObject();

        // UserData コールバック設定
        // メッセージコールバック設定。このパラメーターが設定されている場合、グローバルイベント通知設定がオーバーライドされます。
        JSONObject messageCallback = new JSONObject();
        // Webhook アドレスを設定します
        messageCallback.put("CallbackURL", "http://192.168.0.0/16");
        // コールバックタイプを設定します。デフォルト値: 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);
    }
    /** 
     * リクエスト例
     */
    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());
        }
    }
}

URL によるバッチアップロード

UploadMediaByURL API を呼び出して、URL によるバッチアップロードを実行します。

Alibaba Cloud OpenAPI Portal リンク: UploadMediaByURL

サンプルコード:

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;

/**
 * URL によるバッチアップロード機能のサンプルコード
 *
 */
public class AudioOrVideoUploadByUrl {

    /** 
     * AccessKey 情報を読み取ります
     */
    public static DefaultAcsClient initVodClient() throws ClientException {
    // ApsaraVideo VOD が有効化されているリージョン。
    String regionId = "cn-shanghai"; 
    // Alibaba Cloud アカウントの AccessKey ペアは、すべての API 操作に対する権限を持っています。RAM ユーザーを使用して API 操作を呼び出すか、日常の O&M を実行することを推奨します。
    // プロジェクトコードに AccessKey ID と AccessKey Secret をハードコーディングしないことを強く推奨します。そうしないと、AccessKey ペアが漏洩し、すべてのリソースのセキュリティが脅かされる可能性があります。
    // この例では、環境変数から AccessKey ペアを読み取って API アクセスを認証する方法を示します。サンプルコードを実行する前に、ALIBABA_CLOUD_ACCESS_KEY_ID および 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;
    }

    /**
     * URL によるバッチアップロード
     *
     * @param client リクエストを送信するクライアント
     * @return UploadMediaByURLResponse 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
        request.setUploadURLs(encodeUrl);

        // アップロードする動画のメタデータ
        JSONObject uploadMetadata = new JSONObject();
        // アップロードする動画ソースファイルの URL。有効にするには、UploadURLs 内の URL と一致する必要があります。
        uploadMetadata.put("SourceUrl", encodeUrl);
        // 動画のタイトル
        uploadMetadata.put("Title", "upload by url sample");

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

        // UserData: ユーザー定義のパラメーター設定。Webhook アドレスを指定し、パススルーデータを渡す必要がある場合にこのパラメーターを設定します。このパラメーターはオプションです。
        JSONObject userData = new JSONObject();

        // UserData コールバック設定
        // メッセージコールバック設定。このパラメーターが設定されている場合、グローバルイベント通知設定がオーバーライドされます。
        JSONObject messageCallback = new JSONObject();
        // Webhook アドレスを設定します
        messageCallback.put("CallbackURL", "http://192.168.0.0/16");
        // コールバックタイプを設定します。デフォルト値: 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);
    }

    /** 
     * リクエスト例
     */
    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());
        }
    }

}

メディアアセット情報の登録

RegisterMedia API を呼び出して、メディアアセット情報を登録します。

Alibaba Cloud OpenAPI Portal リンク: RegisterMedia

サンプルコード:

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;

/**
 * メディアアセット登録のサンプルコード
 *
 */
public class MediaRegisterDemo {

    /** 
     * AccessKey 情報を読み取ります
     */
    public static DefaultAcsClient initVodClient() throws ClientException {
    // ApsaraVideo VOD が有効化されているリージョン。
    String regionId = "cn-shanghai";  
    // Alibaba Cloud アカウントの AccessKey ペアは、すべての API 操作に対する権限を持っています。RAM ユーザーを使用して API 操作を呼び出すか、日常の O&M を実行することを推奨します。
    // プロジェクトコードに AccessKey ID と AccessKey Secret をハードコーディングしないことを強く推奨します。そうしないと、AccessKey ペアが漏洩し、すべてのリソースのセキュリティが脅かされる可能性があります。
    // この例では、環境変数から AccessKey ペアを読み取って API アクセスを認証する方法を示します。サンプルコードを実行する前に、ALIBABA_CLOUD_ACCESS_KEY_ID および 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;
    }

    /**
     * メディアアセット情報を登録します
     * @param client リクエストを送信するクライアント
     * @return RegisterMediaResponse メディアアセット情報を登録するための応答データ
     * @throws Exception
     */
    public static RegisterMediaResponse registerMedia(DefaultAcsClient client) throws Exception {
        RegisterMediaRequest request = new RegisterMediaRequest();
        JSONArray metaDataArray = new JSONArray();
        JSONObject metaData = new JSONObject();
        // タイトル
        metaData.put("Title", "this is a sample");
        // ソースファイルの URL。ファイル名はグローバルに一意である必要があります。同じ名前のファイルを追加すると、一意のメディア ID に関連付けられます。
        metaData.put("FileURL", "https://192.168.0.0/16.oss-cn-shanghai.aliyuncs.com/vod_sample.mp4");
        // 登録するメディアアセットのメタデータを指定します
        metaDataArray.add((metaData));
        request.setRegisterMetadatas(metaDataArray.toJSONString());
        return client.getAcsResponse(request);
    }

    /** 
     * リクエスト例
     */
    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());
        }

    }

}

URL アップロード情報の取得

GetURLUploadInfos API を呼び出して、URL アップロード情報を取得します。

Alibaba Cloud OpenAPI Portal リンク: GetURLUploadInfos

サンプルコード:

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;

/**
 * URL アップロード情報を取得するためのサンプルコード
 */
public class URLUploadInfosGetDemo {
    
    /** 
     * AccessKey 情報を読み取ります
     */
    public static DefaultAcsClient initVodClient() throws ClientException {
    // ApsaraVideo VOD が有効化されているリージョン。
    String regionId = "cn-shanghai";  
    // Alibaba Cloud アカウントの AccessKey ペアは、すべての API 操作に対する権限を持っています。RAM ユーザーを使用して API 操作を呼び出すか、日常の O&M を実行することを推奨します。
    // プロジェクトコードに AccessKey ID と AccessKey Secret をハードコーディングしないことを強く推奨します。そうしないと、AccessKey ペアが漏洩し、すべてのリソースのセキュリティが脅かされる可能性があります。
    // この例では、環境変数から AccessKey ペアを読み取って API アクセスを認証する方法を示します。サンプルコードを実行する前に、ALIBABA_CLOUD_ACCESS_KEY_ID および 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;
    }

    /**
     * URL アップロード情報を取得します
     *
     * @param client リクエストを送信するクライアント
     * @return GetURLUploadInfosResponse URL アップロード情報を取得するための応答データ
     * @throws Exception
     */
    public static GetURLUploadInfosResponse getURLUploadInfos(DefaultAcsClient client) throws Exception {
        GetURLUploadInfosRequest request = new GetURLUploadInfosRequest();

        // ソース動画 URL のリスト。URL は 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, ','));
        // ジョブ ID のリスト。ジョブ ID は、GetPlayInfo API によって返される PlayInfo 構造体から取得できます。
        //request.setJobIds("exampleID1,exampleID2");

        return client.getAcsResponse(request);
    }

    /** 
     * リクエスト例
     */
    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());
        }
    }
}