ファイルアップロード
目的・用途
大容量データを安定的にWEKO3へアップロードする
利用方法
ユーザ画面のLarge File Uploadタブからファイルをアップロードする。
利用可能なロール
ロール | システム 管理者 |
リポジトリ 管理者 |
コミュニティ 管理者 |
登録ユーザー | 一般ユーザー | ゲスト (未ログイン) |
---|---|---|---|---|---|---|
利用可否 | ○ | ○ | ○ | ○ |
機能内容
大容量のファイルアップロードを行う。
大容量ファイルアップロード失敗した場合のレジュームアップロードを行う。
レジュームアップロードのため、ログインユーザ自身がアップロードしたファイルの履歴を確認できる
関連モジュール
invenio-files-rest
処理概要
下記をJavaScriptから行うことでファイルアップロード・レジュームアップロードを実現する。
新規アップロードの場合
files_filesレコードを作成し、FileInstanceのUUIDを取得する
ObjectStorageへマルチパートアップロードの初期化APIを英クエストし、upload_idを取得する
upload_id, file_idでfiles_multipartrobjectレコードを追加する
レジュームアップロードの場合 upload_idが正しい形式、有効かを検証するその後、新規アップロード・レジュームアップロード共通で下記を行う
ファイルをパートごとに分割し、files_multipartobject_partにすでにレコードが存在し、パートのハッシュ値を比較する
files_multipartobject_partにレコードが存在しない場合、ObjectStorageにパートをアップロードし、files_multipartobject_partにレコードを追加する
すべてのパートをアップロードし終えたら、ObjectStorageへマルチパートアップロードの完了APIをリクエストし、files_multipartobjectレコードとfiles_filesレコードを更新する
更新履歴
日付 | GitHubコミットID | 更新内容 |
---|---|---|
|
4ec162bf3bdcf843df23863fbf7d5bb36ba875e4 | W2023-42 |