クライアントでアップロードを開始する前に、アップロード操作中に実行する必要があるアップロード署名を、Appの署名配布サーバーに申請する必要があります。これによって、VODはクライアントにアップロードの権限が付与されているかを確認できます。
secretId=[secretId]¤tTimeStamp=[currentTimeStamp]&expireTime=[expireTime]&random=[random]
- 上記のoriginalにおける`[secretId]`、`[currentTimeStamp]`、`[expireTime]`、`[random]`は、特定のパラメータ値にご自身で置き換える必要があります。
- originalには、`secretId`、`currentTimeStamp`、`expireTime`、`random`の4つの必須パラメータが含まれており、オプションのパラメータならいくつでも含めることができます。詳細については、[署名パラメータ](#p2) をご参照ください。
- パラメータ値は、必ずUrlEncodeを行う必要があります。行わない場合、QueryStringの解析が失敗する恐れがあります。
平文文字列を最終的な署名に変換します(Javaコードの一部を例とします)
取得したSecretKeyを使用して、平文文字列originalをHMAC-SHA1 で暗号化し、signatureTmpを取得します。
Mac mac = Mac.getInstance("HmacSHA1");
SecretKeySpec secretKey = new SecretKeySpec(this.secretKey.getBytes("UTF-8"), mac.getAlgorithm());
mac.init(secretKey);
byte[] signatureTmp = mac.doFinal(original.getBytes("UTF-8"));
signatureTmpは、UTF-8でエンコードされ、HMAC-SHA1で暗号化されたバイト配列です。
UTF-8を使用して平文文字列originalをバイト配列にエンコードし、次に配列をsignatureTmpでマージし、最後にマージされた結果をBase64 にエンコードして、次のような署名signatureを取得します。
String signature = base64Encode(byteMerger(signatureTmp, original.getBytes("utf8")));
byteMergerとbase64Encodeは、それぞれ配列のマージとBase64エンコードのメソッドです。詳細については、Java署名サンプルコード をご参照ください。
VODでは、参考と検証のために、署名生成サンプルコードと署名ツールも提供します。
オンデマンドクライアントからのアップロード - 署名検証ツール
パラメータ名 | 記入必須 | タイプ | 説明 |
---|---|---|---|
secretId | はい | String | Tencent Cloud APIキーのSecretId。取得方法については、クライアントからのアップロードガイド - Tencent Cloud APIキーの取得 をご参照ください。 |
currentTimeStamp | はい | Integer | 現在のUnixタイムスタンプ。 |
expireTime | はい | Integer | 署名の有効期限が切れたUnixタイムスタンプ。expireTime = currentTimeStamp + 署名の有効期間 署名の有効期間の最大値は7776000、つまり90日です。 |
random | はい | Integer | 平文署名文字列を作成するためのパラメータ。10進数で、最大値はxxxxx (32ビットの符号なしのバイナリー最大値)です。 |
classId | いいえ | Integer | ビデオファイルのカテゴリー。デフォルトは0です。 |
procedure | いいえ | String | 後続のビデオタスク操作、すなわち、ビデオのアップロードが完了した後、タスクフロー操作が自動的に開始されます。このパラメータ値はタスクフローテンプレート名です。VODは、タスクフローテンプレートの作成 とテンプレートの命名をサポートします。 |
taskPriority | いいえ | Integer | 後続のビデオタスクの優先度(procedureが指定されている場合にのみ有効)。値の範囲は[-10,10]、デフォルトは0です。 |
taskNotifyMode | いいえ | String | タスクフロー状態の変更通知モード(procedureが指定されている場合にのみ有効)。 |
sourceContext | いいえ | String | ソースコンテキストは、ユーザーリクエスト情報を渡すために使用されます。アップロード完了コールバック は、このフィールドの値を返します。最大250文字を入力することが可能です。 |
oneTimeValid | いいえ | Integer | 署名がワンタイム署名かどうかについては、クライアントからのアップロードガイド - ワンタイム署名 をご参照ください。 デフォルトは0で、ワンタイム署名が無効であることを表し、1はワンタイム署名が有効であることを表します。 関連するエラーコードについては、ワンタイム署名の説明をご参照ください。 |
vodSubAppId | いいえ | Integer | サブアプリケーション ID。このパラメータを入力しない、0を入力した、またはTencent Cloud AppIdを入力した場合、操作するサブアプリケーションが「メインアプリケーション」となります。 |
sessionContext | いいえ | String | セッションコンテキストは、ユーザーリクエスト情報を渡すために使用されます。procedureパラメータが指定されている場合、タスクフロー状態の変更コールバック は、フィールド値を返します。最大1000文字を含めることができます。 |
storageRegion | いいえ | String | ストレージリージョンを指定します。コンソールでストレージリージョンを追加することができます。詳細については、アップロードストレージ設定 をご参照ください。このフィールドには、ストレージリージョンの英語の略称 を入力してください。 |
random
が繰り返されないようにするなど)。確認しない場合、署名重複によるエラーが発生します。1001
です。
この記事はお役に立ちましたか?