Upload Credential

最終更新日: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 いいえ アップロード成功時にクライアントへ返されるカスタムデータです。ファイル名やファイルアドレスだけ返す場合はreturnBodyfname=$(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)

注記:

  1. persistenOps を設定した場合は、persistentNotifyUrl フィールドも合わせて設定してください。命令処理結果は persistentNotifyUrl で通知されます。詳細は Notification Data Content Description 参照。
  2. アップロード処理機構を使う場合、persistenOps 設定時に saveas 指示パラメータは必須で、キーは元ファイルと同じでなくても構いません。これがない場合は「The Persistent File Already Exists」という401エラーが返されます。
  3. ファイル名の優先順位: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署名生成
SecretKeyencodePutPolicyHMAC-SHA1署名し Sign を得ます。

Sign = hmac_sha1(encodePutPolicy, "<SecretKey>")

4. 署名データをURL-Safe Base64でエンコード
署名データ Sign をURL-Safe Base64でエンコードし、encodeSign を生成します。

encodeSign = urlsafe_base64_encode(Sign)

5. アップロード認証情報の生成
AccessKeyencodedSignencodePutPolicy を「:」で連結して uploadToken を生成します。

uploadToken = AccessKey:encodedSign:encodePutPolicy