ApsaraVideo VOD は、開発者がさまざまなメソッドを使用してメディアファイルをアップロードできる、サーバーサイドアップロード API の包括的なセットを提供します。このトピックでは、Java ソフトウェア開発キット (SDK) を使用してサーバーサイドアップロード API を呼び出す際の利用シーンとコード例について説明します。
利用シーン
このトピックでは、アップロード認証情報とアップロード URL を取得する操作など、API 操作の呼び出し例のみを提供します。次の表に、API 操作を呼び出してメディアファイルをアップロードできる利用シーンを示します。
API 操作 | 利用シーン |
| |
| |
|
前提条件
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 バージョンを指定してください。

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());
}
}
}