機能説明
- ファイルアップロード情報の取得:サーバーサイドにアップロード認証情報(OSS アドレス + 署名 Headers)を申請します。
- OSS へのファイルアップロード:ステップ 1 で返却されたアドレスと Headers を使用し、ファイルコンテンツを OSS に PUT します。
- ファイルの送信:サーバーサイドにアップロード完了を通知し、ファイルの最終登録を完了します。
ステップ 1:ファイルアップロード情報の取得
APIPOST /v2.0/storage/spaces/files/{parentDentryUuid}/uploadInfos/query を呼び出し、対象目次の parentDentryUuid(親目次の一意識別子)と操作者の unionId を渡して、今回のアップロードに必要な認証情報を取得します。
API の詳細は ファイルアップロード情報の取得 のドキュメントを参照してください。呼び出し方法については、サーバー API の呼び出し方法に関するドキュメントを参照してください。
主要なリクエストパラメータ:
-
parentDentryUuid(Path):アップロード先目次の dentryUuid。ナレッジベースのルート目次にアップロードする場合、以下の 2 つの方法でルート目次の dentryUuid を取得できます。- マイドキュメントナレッジベース情報の取得 API を呼び出し、戻り値の
workspace配下のrootNodeIdフィールドの値を取得します。 - ナレッジベース一覧の取得 API を呼び出し、戻り値の
workspaces配下のrootNodeIdフィールドの値を取得します。
- マイドキュメントナレッジベース情報の取得 API を呼び出し、戻り値の
-
unionId(Query):操作者の unionId。ユーザー詳細の照会 API を呼び出して取得できます。 -
protocol(Body):固定値HEADER_SIGNATUREを指定します。 -
option.preCheckParam.name(Body):ファイル名(拡張子を含む)。特殊文字(*、"、<、>、|)を含めることはできず、.で終わることもできません。
レスポンスパラメータ:
uploadKey:今回のアップロードの一意識別子。ステップ 3 で使用します。headerSignatureInfo.resourceUrls:OSS アップロードアドレス。ステップ 2 で使用します。headerSignatureInfo.headers:OSS リクエストヘッダー。ステップ 2 で使用します。expirationSeconds:認証情報の有効期限(秒)。期限切れ前に後続ステップを完了してください。
ステップ 2:OSS へのファイルアップロード
ステップ 1 で返却されたresourceUrls[0] をアップロードアドレスとして、headers をリクエストヘッダーとして使用し、HTTP PUT メソッドでローカルファイルのコンテンツを直接 OSS にアップロードします。
Content-Type は必ず空文字列に設定してください。設定しないと署名検証が失敗します。ステップ 3:ファイルの送信
OSS へのアップロードが完了したら、APIPOST /v2.0/storage/spaces/files/{parentDentryUuid}/commit を呼び出し、ファイルを正式にナレッジベースの目次に書き込み、アップロードフロー全体を完了します。
説明
- API が成功すると、ファイル ID、uuid、所属スペースなどを含むファイル情報(
dentry)が返却され、アップロードが完了します。 - API の詳細は ファイルの送信 のドキュメントを参照してください。呼び出し方法については、サーバー API の呼び出し方法に関するドキュメントを参照してください。
主要なリクエストパラメータ:
parentDentryUuid(Path):ステップ 1 と同じ値を指定します。unionId(Query):操作者の unionId。ユーザー詳細の照会 API を呼び出して取得できます。uploadKey(Body):ステップ 1 で返却された uploadKey。今回のアップロードと関連付けるために使用します。name(Body):ファイル名(拡張子を含む)。option.conflictStrategy(Body):ファイル名の競合戦略。AUTO_RENAME(デフォルト、自動で名前を変更)/OVERWRITE(上書き)から選択できます。
HTTP サンプル:
全体フローのまとめ
注意事項
- ステップ 2 のアップロード時、
Content-Typeは必ず空文字列に設定してください。設定しないと OSS の署名検証が失敗します。 - ステップ 1 で返却されたアップロード認証情報には有効期限(
expirationSeconds)があります。期限切れ前にステップ 2 とステップ 3 を完了してください。期限切れの場合はステップ 1 を再度呼び出す必要があります。 - ストレージスペースのタイプが
USERの場合、スペースのオーナーと管理者のみが操作権限を持ち、その他の社員は事前に「権限の追加」API で権限付与を受ける必要があります。 - ストレージスペースのタイプが
APPの場合、いかなるユーザーの操作も事前に「権限の追加」API で権限付与を受ける必要があります。