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

ApsaraVideo VOD:WeChat ミニプログラム向けアップロード SDK

最終更新日:Sep 16, 2026

ApsaraVideo VOD アップロード SDK を使用して、WeChat ミニプログラムから VOD ストレージにメディアファイルをアップロードできます。

注意事項

WeChat ミニプログラム SDK は、オーディオ、ビデオ、画像ファイルのアップロードをサポートしています。補助メディアアセットのアップロードはサポートしていません。

SDK とデモのダウンロード

SDK の統合

SDK ファイルをプロジェクトにコピーし、関連ページで依存関係をインポートします。

import VODUpload from 'aliyun-upload-sdk-1.0.3.min.js'

基本設定

アップローダーの初期化

  • SDK インスタンスを初期化する際は、アップローダーを識別するために userId パラメーターを渡す必要があります。このパラメーターは必須であり、空にすることはできません。Alibaba Cloud アカウント ID またはカスタムユーザー ID を使用できます。アカウント ID を確認するには、アカウントセンターにアクセスしてください。userId パラメーターを渡さない場合、または空の値を渡した場合、エラーが発生します。

  • region フィールドは、ApsaraVideo VOD でサポートされているリージョン ID のいずれかに設定する必要があります。

var uploader = new VODUpload({
  // Alibaba Cloud アカウントの ID。このパラメーターは空にできません。アカウント ID は、アカウントセンターで確認してください。
  userId: "25346073170691****",
  // ファイルをアップロードする ApsaraVideo VOD のリージョン。デフォルト値: 'cn-shanghai'。その他の有効な値として 'eu-central-1' や 'ap-southeast-1' などがあります。詳細は「概要」をご参照ください。
  region: "cn-shanghai",
  // ネットワークの問題でアップロードが失敗した場合の再試行回数。デフォルト値: 3。
  retryCount: 3,
  // ネットワークの問題でアップロードが失敗した場合の再試行間隔。デフォルト値: 2 秒。
  retryDuration: 2,
  // アップロード開始時のコールバック。
  onUploadstarted: function (uploadInfo) {},
  // ファイルのアップロード成功時のコールバック。
  onUploadSucceed: function (uploadInfo) {},
  // ファイルのアップロード失敗時のコールバック。
  onUploadFailed: function (uploadInfo, code, message) {},
  // アップロードの進捗状況のコールバック。単位: バイト。
  onUploadProgress: function (uploadInfo, totalSize, loadedPercent) {},
  // アップロード認証情報の有効期限切れ時のコールバック。
  onUploadTokenExpired: function (uploadInfo) {},
  // 全ファイルのアップロード完了時のコールバック。
  onUploadEnd: function (uploadInfo) {},
});

認証情報の設定

クライアント側全体のアップロードプロセスを確認し、希望する方法に対応する承認サービスをデプロイしてください。

  1. 「アップロード URL と認証情報」方式を使用する場合は、承認サービスからアップロード URL と認証情報を取得する必要があります。

  2. 「STS トークン」方式を使用する場合は、承認サービスからSTS トークンを取得する必要があります。

すべての承認情報は、onUploadstarted コールバックで設定します。認証情報が期限切れになると、onUploadTokenExpired コールバックがトリガーされます。このコールバック内で適切なメソッドを呼び出して、認証情報を更新してください。

アップロード URL と認証情報

setUploadAuthAndAddress メソッドを呼び出します。認証情報が期限切れになると、onUploadTokenExpired コールバックがトリガーされます。resumeUploadWithAuth メソッドを呼び出して、新しい認証情報を設定し、アップロードを再開します。

// アップロード開始のコールバック
onUploadstarted: function (uploadInfo) {
    console.log('Starting file upload...');
    console.log("onUploadStarted:" + JSON.stringify(uploadInfo))

    var url = "https://alivc-demo.aliyuncs.com/demo/getVideoUploadAuth?title=" + uploadInfo.url + "&fileName=" + uploadInfo.url + "&fileSize=" + uploadInfo.fileSize + "&description=description&coverURL=" + uploadInfo.coverUrl + "&tags=tags";

    wx.request({
        'url': url,
        success: (res => {
            if (res.statusCode === 200) {
                var akInfo = res.data.data;
                uploader.setUploadAuthAndAddress(uploadInfo, akInfo.uploadAuth, akInfo.uploadAddress, akInfo.videoId);
            } else {
                console.log(res)
                uploader.stopUpload();
            }
        }),
        fail: (res => {
            uploader.stopUpload();
            console.log(res)
        })
    });

},
// アップロード認証情報の有効期限が切れた場合
onUploadTokenExpired: function (uploadInfo) {
    const url = "https://alivc-demo.aliyuncs.com/demo/refreshVideoUploadAuth?videoId=" + uploadInfo.videoId;
    
    wx.request({
      'url': url,
      success: (res => {
          if (res.statusCode === 200) {
              var akInfo = res.data.data;
              uploader.resumeUploadWithAuth(akInfo.uploadAuth);
          } else {
              console.log(res)
              uploader.stopUpload();
          }
      }),
      fail: (res => {
          uploader.stopUpload();
          console.log(res)
    })
  });
},

メソッドの説明:

uploader.setUploadAuthAndAddress(uploadInfo, uploadAuth, uploadAddress, videoId)
uploader.resumeUploadWithAuth(uploadAuth)

パラメーター

説明

uploadInfo

onUploadstarted コールバックの最初のパラメーターから値を取得できます。

uploadAuth

CreateUploadVideo 操作によって返されるアップロード資格情報。

uploadAddress

CreateUploadVideo 操作によって返されるアップロード URL。

videoId

CreateUploadVideo 操作によって返される音声または動画の ID。

STS トークン

setSTSToken メソッドを呼び出します。STS トークンが期限切れになると、onUploadTokenExpired コールバックがトリガーされます。resumeUploadWithSTSToken メソッドを呼び出して、新しい STS トークンを設定し、アップロードを再開します。

 /* コールバックメソッド - アップロード開始 */
onUploadstarted: function (uploadInfo) {
    console.log('Starting file upload...');
    console.log("onUploadStarted:" + JSON.stringify(uploadInfo))
    wx.request({
        url: "https://alivc-demo.aliyuncs.com/demo/getSts",
        // data: data,
        // header: header,
        // method: method,
        success: (res => {
            if (res.statusCode === 200) {
                var akInfo = res.data.data;
                uploader.setSTSToken(uploadInfo, akInfo.accessKeyId, akInfo.accessKeySecret, akInfo.securityToken);
            } else {
                console.log(res)
            }
        }),
        fail: (res => {
            onError(res);
        })
    });

},
// アップロード認証情報の有効期限が切れた場合
onUploadTokenExpired: function (uploadInfo) {
    const url = "https://alivc-demo.aliyuncs.com/demo/getSts";
    
    wx.request({
      'url': url,
      success: (res => {
          if (res.statusCode === 200) {
              var akInfo = res.data.data;
              uploader.resumeUploadWithSTSToken(akInfo.accessKeyId, akInfo.accessKeySecret, akInfo.securityToken);
          } else {
              console.log(res)
              uploader.stopUpload();
          }
      }),
      fail: (res => {
          uploader.stopUpload();
          console.log(res)
    })
  });
},

メソッドの説明:

uploader.setSTSToken(uploadInfo, accessKeyId, accessKeySecret, secretToken)
uploader.resumeUploadWithSTSToken(accessKeyId, accessKeySecret, secretToken)

パラメーター

説明

uploadInfo

onUploadstarted コールバックの最初のパラメーターから値を取得できます。

accessKeyId

STS トークンの AccessKeyId フィールド。

accessKeySecret

STS トークンの AccessKeySecret フィールド。

secretToken

STS トークンの SecretToken フィールド。

ファイルの追加

<view class="weui-uploader__input-box">
  <view class="weui-uploader__input" bindtap="chooseVideo"></view>
</view>
// ビデオの選択
chooseVideo: function (e) {
    var that = this;
    wx.chooseVideo({
        sourceType: ['album', 'camera'],
        maxDuration: 60,
        compressed: false,
        camera: 'back',
        success: function (res) {
            var file = {url: res.tempFilePath, coverUrl: res.thumbTempFilePath};
            var uploader = that.data.uploader;
            var paramData = '{"Vod":{}}';
            uploader.addFile(file, null, null, null, paramData);
        }
    })
},

メソッドの説明:

uploader.addFile(file,endpoint,bucket,object,paramData)

パラメーター

必須

タイプ

説明

file

はい

ファイル

アップロードするメディアファイル。

endpoint

いいえ

文字列

OSS エンドポイント。null を指定した場合、実際の値は AppServer によって決定されます。

bucket

いいえ

文字列

ファイルをアップロードするバケット。null を指定した場合、実際の値は AppServer によって決定されます。

object

いいえ

文字列

ファイルをアップロードするオブジェクト。null を指定した場合、実際の値は AppServer によって決定されます。

paramData

いいえ

文字列

アップロードする動画または音声ファイルに関する情報 (タイトル、説明、トランスコード設定、コールバック設定など)。STS トークンを使用して動画または音声ファイルを ApsaraVideo VOD にアップロードする場合、paramData を指定できます。

paramData パラメーターの値は、 '{"Vod":{}}' のような JSON 文字列です。リクエストで Vod を指定する必要があります。paramData パラメーターでサポートされているパラメーターを Vod の下にネストできます。CreateUploadVideo - 音声または動画のアップロードアドレスと資格情報を取得する または CreateUploadImage - 画像のアップロードアドレスと資格情報を取得する 操作のリクエストパラメーターをネストできます。

アップロードの開始

uploader.startUpload();
  1. ファイルのアップロードが開始されると、onUploadProgress コールバックが呼び出され、アップロードの進行状況が同期されます。

  2. ファイルのアップロードが成功すると、onUploadSucceed コールバックが呼び出され、アップロード結果が返されます。

高度な機能

アップロードアクセラレーションの使用

数ギガバイトや数テラバイトの大きなファイルをアップロードする場合や、中国本土リージョンから Singapore リージョンのストレージアドレスへのアップロードなど、リージョンをまたいでビデオをアップロードする場合には、アップロードアクセラレーション機能を有効にできます。

アップロードアクセラレーション機能を有効にするには、チケットを起票する必要があります。チケットには、Alibaba Cloud アカウントの UID と、アップロードアクセラレーションを使用したいストレージのアドレスを記載してください。

方法1:アップロード URL と認証情報

この方法でファイルをアップロードする場合、CreateUploadVideo API を呼び出し、UserData パラメーターでキーと値のペアを指定してアクセラレーション設定を構成します。サンプルコード:

UserData={
  "AccelerateConfig": {
    "Type": "oss",
    "Domain": "https://oss-accelerate.aliyuncs.com"
  }
}

方法2:STS トークン

この方法でファイルをアップロードする場合、addFile メソッドを呼び出し、paramData パラメーターに UserData プロパティを追加して、アップロード内容を構成します。サンプルコード:

uploader.addFile(file,null,null,null,'{"Vod":{"UserData":{"AccelerateConfig":{"Type":"oss","Domain":"https://oss-accelerate.aliyuncs.com"}}}}');

UserDataの説明

名前

タイプ

必須

説明

userData

string

いいえ

コールバック設定やアップロードアクセラレーション設定などのカスタム設定。値は JSON 文字列である必要があります。

パラメーターの説明は次のとおりです。

パラメーター

タイプ

説明

Type

string

アップロードアクセラレーションを有効にするファイルタイプ。値は oss に設定します。

Domain

string

バケットの高速化ドメイン名。デフォルトで HTTPS が使用されます。

説明

アップロードアクセラレーションを有効にした後に割り当てられる高速化エンドポイント (例: vod-*******.oss-accelerate.aliyuncs.com) を使用します。

UserData の設定方法の詳細は、「リクエストパラメーターの説明」をご参照ください。

アップロードの停止

説明

stopUpload は、ファイルがアップロード中の場合にのみ呼び出すことができます。それ以外の場合、stopUpload は効果がありません。

uploader.stopUpload();

キュー管理

次のメソッドを呼び出して、アップロード済みまたはアップロード中のファイルを管理できます:

  • アップロードリストのクエリ

    返されるデータには、addFile を呼び出してアップロードされたファイルに関する情報が含まれます。「file:」は、リスト内の各要素がファイルであることを示します。トラバースすることで、管理したいファイルのインデックスを取得できます。

    var list = uploader.listFiles();
    for (var i=0; i<list.length; i++) {
        console.log("file:" + list[i].file.name);
    }
  • アップロードするファイルの削除

    uploader.deleteFile(index);//削除するファイルのインデックス。インデックスは listFiles 操作によって返されます。
  • 単一ファイルのアップロードのキャンセル

    説明
    • cancelFile を呼び出すと、コンソールに oss is cancel as error メッセージが表示されます。これにより、アップロードされたパートがストレージ領域を占有するのを防ぎ、不要なコストを節約できます。

    • キャンセルされたアップロードを再開するには、アップロードを再開する前に uploader.resumeFile(index); を使用してファイルを復元する必要があります。

    uploader.cancelFile(index);
  • 単一ファイルのアップロードの再開

    uploader.resumeFile(index);
  • アップロードリストのクリア

    uploader.cleanList();

トラブルシューティング

WeChat ミニプログラム SDK の使用中にエラーが発生した場合は、エラーコードに基づいて原因を特定してください。詳細については、「エラーコード」をご参照ください。