サーバーでのビデオアップロードのシナリオを実現させるために、VODではNode SDKを提供しています。アップロードのフローは、サーバーからのアップロードガイドをご参照ください。
npm i vod-node-sdk --save
プロジェクトの中でnpmツールを使用して依存管理を行なっていない場合は、ソースコードを直接ダウンロードし、プロジェクトの中にインポートして使用することができます。
Tencent Cloud APIキーを使用して、VodUploadClientインスタンスを初期化します。
const { VodUploadClient, VodUploadRequest } = require('vod-node-sdk');
client = new VodUploadClient("your secretId", "your secretKey");
let req = new VodUploadRequest();
req.MediaFilePath = "/data/file/Wildlife.mp4";
アップロードメソッドを呼び出して、アクセスポイントリージョンおよびアップロードリクエストを渡し、コールバック方式によって戻ってきた情報を取得します。
client.upload("ap-guangzhou", req, function (err, data) {
if (err) {
// サービス異常の処理
console.log(err)
} else {
// アップロード成功後の情報の取得
console.log(data.FileId);
console.log(data.MediaUrl);
}
});
説明:アップロード方法は、ファイルのサイズに応じて、通常アップロードとマルチパートアップロードが自動的に選択されます。マルチパートアップロードの各手順を気にすることなく、マルチパートアップロードを行うことができます。
const { VodUploadClient, VodUploadRequest } = require('vod-node-sdk');
client = new VodUploadClient("your secretId", "your secretKey");
let req = new VodUploadRequest();
req.MediaFilePath = "/data/file/Wildlife.mp4";
req.CoverFilePath = "/data/file/Wildlife-cover.png";
client.upload("ap-guangzhou", req, function (err, data) {
if (err) {
// サービス異常の処理
console.log(err)
} else {
// アップロード成功後の情報の取得
console.log(data.FileId);
console.log(data.MediaUrl);
console.log(data.CoverUrl);
}
});
まず、タスクフローテンプレートの作成、およびテンプレートに対する命名を行います。タスクフロー時に、このタスクフローテンプレート名を使用してProcedure
パラメータを設定すれば、アップロード成功後、タスクフローを自動的に実行することができます。
const { VodUploadClient, VodUploadRequest } = require('vod-node-sdk');
client = new VodUploadClient("your secretId", "your secretKey");
let req = new VodUploadRequest();
req.MediaFilePath = "/data/file/Wildlife.mp4";
req.Procedure = "Your Procedure Name";
client.upload("ap-guangzhou", req, function (err, data) {
if (err) {
// サービス異常の処理
console.log(err)
} else {
// アップロード成功後の情報の取得
console.log(data.FileId);
console.log(data.MediaUrl);
}
});
サブアプリケーションIDを渡します。アップロード成功後、リソースは具体的なサブアプリケーションにのみ属します。
const { VodUploadClient, VodUploadRequest } = require('vod-node-sdk');
client = new VodUploadClient("your secretId", "your secretKey");
let req = new VodUploadRequest();
req.MediaFilePath = "/data/file/Wildlife.mp4";
req.SubAppId = 101;
client.upload("ap-guangzhou", req, function (err, data) {
if (err) {
// サービス異常の処理
console.log(err)
} else {
// アップロード成功後の情報の取得
console.log(data.FileId);
console.log(data.MediaUrl);
}
});
コンソールで目標ストレージリージョンがアクティブ化されているか確認します。アクティブ化されていない場合は、アップロードストレージ設定を参考とすることができます。最後に、StorageRegion
の属性によって、ストレージリージョンの 英語の略称を設定します。
const { VodUploadClient, VodUploadRequest } = require('vod-node-sdk');
client = new VodUploadClient("your secretId", "your secretKey");
let req = new VodUploadRequest();
req.MediaFilePath = "/data/file/Wildlife.mp4";
req.StorageRegion = "ap-chongqing";
client.upload("ap-guangzhou", req, function (err, data) {
if (err) {
// サービス異常の処理
console.log(err)
} else {
// アップロード成功後の情報の取得
console.log(data.FileId);
console.log(data.MediaUrl);
}
});
一時的な証明書の関連キー情報を渡し、一時的な証明書を使用して身分を検証し、アップロードします。
const { VodUploadClient, VodUploadRequest } = require('vod-node-sdk');
client = new VodUploadClient("Credentials TmpSecretId", "Credentials TmpSecretKey", "Credentials Token");
let req = new VodUploadRequest();
req.MediaFilePath = "/data/file/Wildlife.mp4";
client.upload("ap-guangzhou", req, function (err, data) {
if (err) {
// サービス異常の処理
console.log(err)
} else {
// アップロード成功後の情報の取得
console.log(data.FileId);
console.log(data.MediaUrl);
}
});
このSDKでアップロードをサポートするABS形式のパッケージにはHLSとDASHがあります。manifest(M3U8またはMPD)で引用するメディアファイルは、必ず相対パスとし(URLおよび絶対パスは不可)、同時にmanifestと同じクラスのディレクトリまたは下の階層のディレクトリに置く必要があります(../
は使用不可)。SDKのアップロードインターフェースを呼び出す時に、MediaFilePath
パラメータにmanifest パスを入力すると、SDKが関連するメディアファイルリストを解析し、一緒にアップロードします。
const { VodUploadClient, VodUploadRequest } = require('vod-node-sdk');
client = new VodUploadClient("your secretId", "your secretKey");
let req = new VodUploadRequest();
req.MediaFilePath = "/data/file/prog_index.m3u8";
client.upload("ap-guangzhou", req, function (err, data) {
if (err) {
// サービス異常の処理
console.log(err)
} else {
// アップロード成功後の情報の取得
console.log(data.FileId);
console.log(data.MediaUrl);
}
});
アップロードクライアントクラスVodUploadClient
属性名 | 属性説明 | タイプ | 入力必須 |
---|---|---|---|
secretId | Tencent Cloud APIキーID。 | String | はい |
secretKey | Tencent Cloud API Key。 | String | はい |
アップロードリクエストクラスVodUploadRequest
属性名 | 属性説明 | タイプ | 入力必須 |
---|---|---|---|
MediaFilePath | アップロード予定のメディアファイルパス。ローカルパス(ユーザーサーバー上のパス)にする必要があります。URLはサポートしていません。 | String | はい |
SubAppId | VOD サブアプリケーションID。サブアプリケーションの中のリソースにアクセスしたい場合は、このフィールドにサブアプリケーションIDを入力します。アクセスしない場合、このフィールドは入力不要です。 | Integer | いいえ |
MediaType | アップロード予定のメディアファイルタイプ。選択可能なタイプの詳細は、ビデオアップロードの概要をご参照ください。MediaFilePathに拡張子が付いている場合は入力不要です。 | String | いいえ |
MediaName | アップロード後のメディアの名前。入力しない場合は、デフォルトでMediaFilePathのファイル名を採用します。 | String | いいえ |
CoverFilePath | アップロード予定のカバーファイルパス。ローカルパス(ユーザーサーバー上のパス)にする必要があります。URLはサポートしていません。 | String | いいえ |
CoverType | アップロード予定のカバーファイルタイプ。選択可能なタイプの詳細は、ビデオアップロードの概要をご参照ください。CoverFilePathに拡張子が付いている場合は入力不要です。 | String | いいえ |
Procedure | アップロード後に自動的に実行させたいタスクフロー名。このパラメータは、タスクフローの作成(API方式 またはコンソール方式)時にユーザーが指定します。具体的な内容は、タスクフロー概要をご参照ください。 | String | いいえ |
ExpireTime | メディアファイルの‘’。表記形式はISO 8601規格に準拠します。詳細については、ISO日時表記形式の説明をご参照ください。 | String | いいえ |
ClassId | カテゴリーID。メディアのカテゴリー管理に使用します。カテゴリー作成 インターフェースによってカテゴリーを作成し、カテゴリーIDを取得することができます。 | Integer | いいえ |
SourceContext | ソースコンテキスト。ユーザーリクエスト情報のパススルーに使用します。アップロードコールバックインターフェースは、このフィールドの値を戻します。最長250文字。 | String | いいえ |
StorageRegion | ストレージリージョン。ストレージを予定/希望するリージョンを指定します。このフィールドにはストレージリージョンの英語の略称を入力します。 | String | いいえ |
アップロードレスポンスクラスVodUploadResponse
属性名 | 属性説明 | タイプ |
---|---|---|
FileId | メディアファイルの一意の標識。 | String |
MediaUrl | メディア再生アドレス。 | String |
CoverUrl | メディアカバーアドレス。 | String |
RequestId | 一意のリクエストID。リクエストごとに返されます。問題を特定する時はその回のリクエストのRequestIdを提供する必要があります。 | String |
アップロードメソッドVodUploadClient.upload(String region, VodUploadRequest request, function callback)
パラメータ名 | パラメータの説明 | タイプ | 入力必須 |
---|---|---|---|
region | アクセスポイントリージョン。どのリージョンのVODサーバーにリクエストするかであり、ストレージリージョンとは異なります。具体的な内容は、サポートするリージョンリストをご参照ください。 | String | はい |
request | アップロードリクエスト。 | VodUploadRequest | はい |
callback | アップロード完了コールバック関数。 | function | はい |
アップロード完了コールバック関数function(err, data)
パラメータ名 | パラメータの説明 | タイプ | 入力必須 |
---|---|---|---|
err | エラー情報。 | Exception | はい |
data | アップロードレスポンスの結果。 | VodUploadResponse | はい |
ステータスコード | 意味 |
---|---|
InternalError | 内部エラー。 |
InvalidParameter.ExpireTime | パラメータ値のエラー:期限。 |
InvalidParameterValue.CoverType | パラメータ値のエラー:カバーのタイプ。 |
InvalidParameterValue.MediaType | パラメータ値のエラー:メディアタイプ。 |
InvalidParameterValue.SubAppId | パラメータ値のエラー:サブアプリケーションID。 |
InvalidParameterValue.VodSessionKey | パラメータ値のエラー:VODセッション。 |
ResourceNotFound | リソースが存在しません。 |
この記事はお役に立ちましたか?