最終更新日:2025-08-18 15:33:42
リクエストフォームにアップロード認証情報を配置してください。パラメータ名はtokenです。
アップロード認証情報を生成するために必要な3つの基本データソースは以下の通りです:
アップロードポリシーデータ (putPolicy)
アップロードポリシーデータは、リソースアップロード時に指定する一連の設定情報です。このデータを基に、CDNetworksクラウドストレージ(オブジェクトストレージ)はユーザーのアップロード要件(アップロードするリソース、アップロード先バケット、アップロード後のコールバック通知またはリダイレクトの有無、フィードバック情報の内容設定、認可アップロードの有効期限など)を理解します。
セキュリティキー (SecretKey)
SKはクラウドストレージプラットフォームのキー管理者より取得してください。
アクセスキー (AccessKey)
AKもクラウドストレージプラットフォームのキー管理者より取得してください。
アップロード認証情報uploadTokenは、これら三つのデータソースに基づく複雑な署名計算の結果として生成されます。アップロード認証情報を検証することで、不正なアップロードリクエストをブロックし、不正侵入を防止できます。
{
"scope": "<bucket string>",
"deadline": "<deadline string>",
"saveKey": "<saveKey string>",
"returnUrl": "<returnUrl string>",
"returnBody": "<returnBody string>",
"overwrite": "<overwrite int>",
"fsizeLimit": "<fsizeLimit long>",
"callbackUrl": "<callbackUrl string>",
"callbackBody": "<callbackBody string>",
"persistentOps": "<persistentOps string>",
"persistentNotifyUrl": "<persistentNotifyUrl string>",
"contentDetect": "<contentDetctstring>",
"detectNotifyURL": "<detectNotifyURL string>",
"detectNotifyRule":"<detectNotifyRule>",
"separate": "<separate int>"
}
| フィールド名 | 必須 | 説明 |
|---|---|---|
| scope | はい | アップロード先バケット<bucket>とファイル名<key>を指定します。a. <bucket>:指定バケットへのファイルアップロード。b. <bucket>:<key>:指定バケットのkey名でファイルをアップロード。overwriteが1の場合、同名リソースがあれば上書きされます。 |
| deadline | はい | アップロードリクエスト認可の有効期限。UNIXタイムスタンプでミリ秒単位。例:1398916800000(2014-05-01 12:00:00を示す) |
| saveKey | いいえ | Custom Resource Name。オブジェクトストレージでのファイルの最終保存パスを指定します。このフィールドは通常のアップロード方式のみサポートします。 |
| fsizeLimit | いいえ | アップロードファイルのサイズ上限(バイト単位)。上限より大きい場合はアップロードに失敗し、401ステータスコードが返されます。 注:0の場合は制限ありません。 |
| overwrite | いいえ | サーバー上に既存のファイルを上書きするかどうかを指定します。 0 - 上書きしない(デフォルト) 1 - 上書きする |
| returnUrl | いいえ | Web経由でアップロード時、ブラウザは303でリダイレクトされたURLを実行します。成功時は<returnUrl>?upload_ret=urlsafe_base64_encode(returnBody)に、失敗時は<returnUrl>?code=<code>&message=<message>にリダイレクトします。未設定ならreturnBodyの内容が直接クライアントに返されます。 |
| returnBody | いいえ | アップロード成功時にクライアントへ返されるカスタムデータです。ファイル名やファイルアドレスだけ返す場合はreturnBodyをfname=$(fname)&url=$(url)に設定します。詳細はReturned Data Descriptionを参照してください。 |
| callbackUrl | いいえ | アップロード成功時にクラウドストレージがPOSTメソッドでリクエストするアドレス(HTTP/1.1 200 OKのレスポンス必須、特殊文字はURLエンコード必要)。レスポンスデータはJSON形式です。 |
| callbackBody | いいえ | アップロード成功時、CDNetworksクラウドがcallbackUrlにPOSTします。callbackBodyは有効なurl query string形式(例:key=$(key)&fsize=$(fsize))。詳細はCallback Method Data Description参照。 |
| persistentNotifyUrl | いいえ | 前処理結果通知の受信用アドレス(HTTP/1.1 200 OK必須、特殊文字はURLエンコード必要)。詳細はNotification Data Content Description参照。 |
| persistentOps | いいえ | ファイルアップロード成功時の前処理命令リスト。各指示はAPI仕様文字列。複数命令は;で区切ります。詳しくはInstruction Descriptionをご覧ください。 |
| contentDetect | いいえ | ファイルアップロード成功時にコンテンツ識別処理を行います。サポートパラメータ: imagePorn(画像ポルノ識別)、imageTerror(画像テロ識別)、imagePolitical(政治家識別) |
| detectNotifyURL | いいえ | 識別結果通知の受信アドレス(HTTP/1.1 200 OK必須、特殊文字はURLエンコード必要)。詳細はIdentification Notification Data Content Description参照。 |
| detectNotifyRule | いいえ | 識別結果通知ルールを設定します。 all:全画像 porn:ポルノ画像 sexy:セクシー画像 normal:正常画像 exception:例外画像 terror:暴力・テロ画像(imageTerrorのみ有効) political:政治家画像(imagePoliticalのみ有効) 複数パラメータはセミコロンで区切ります。例:porn;exceptionだとポルノまたは例外画像通知。 |
| separate | いいえ | トランスコーディング通知の分け方。1/0で指定 1: 各命令実行ごとにpersistentNotifyUrlへ通知 0: すべて実行後に一括で通知(デフォルトは0) |
注記:
persistenOpsを設定した場合は、persistentNotifyUrlフィールドも合わせて設定してください。命令処理結果はpersistentNotifyUrlで通知されます。詳細は Notification Data Content Description 参照。- アップロード処理機構を使う場合、
persistenOps設定時にsaveas指示パラメータは必須で、キーは元ファイルと同じでなくても構いません。これがない場合は「The Persistent File Already Exists」という401エラーが返されます。- ファイル名の優先順位:Scopeのkey > saveKey > form key > オリジナルファイル名
1. アップロードポリシーを構築
アップロードするファイルのいくつかの情報をJSON形式(putPolicy)でまとめます。
{
"scope": "<bucket string>",
"deadline": "<deadline string>",
"returnBody": "<returnBody string>",
"overwrite": "<overwrite int>",
"fsizeLimit": "<fsizeLimit long>",
"returnUrl": "<returnUrl string>"
}
2. アップロードポリシーをURL-Safe Base64でエンコード
putPolicy をURL-Safe Base64エンコードして encodePutPolicy を生成します。
encodePutPolicy = urlsafe_base64_encode(putPolicy)
3. HMAC-SHA1署名生成
SecretKey で encodePutPolicy に HMAC-SHA1署名し Sign を得ます。
Sign = hmac_sha1(encodePutPolicy, "<SecretKey>")
4. 署名データをURL-Safe Base64でエンコード
署名データ Sign をURL-Safe Base64でエンコードし、encodeSign を生成します。
encodeSign = urlsafe_base64_encode(Sign)
5. アップロード認証情報の生成
AccessKey、encodedSign、encodePutPolicy を「:」で連結して uploadToken を生成します。
uploadToken = AccessKey:encodedSign:encodePutPolicy