ロケーション
目的・用途
本機能は、管理者として、アップロードしているファイルの配置先及びロケーションごとの使用量の情報を管理する機能である
利用方法
【Administration > ファイル管理(Files)> ロケーション(Location)】から、ロケーションの情報の閲覧、編集、作成をする。
利用可能なロール
ロール | システム 管理者 |
リポジトリ 管理者 |
コミュニティ 管理者 |
登録ユーザー | 一般ユーザー | ゲスト (未ログイン) |
---|---|---|---|---|---|---|
利用可否 | ○ |
機能内容
【ロケーション(Location)画面】には以下のタブが表示される
一覧(List)
作成(Create)
フィルターを追加▼(Add Filter▼)
一覧(List)タブ選択中のみ表示
外観はタブだが機能としてはプルダウンメニュー
選択▼(With selected▼)
一覧(List)タブ選択中のみ表示
外観はタブだが機能としてはプルダウンメニュー
編集(Edit)
一覧(List)タブ選択中は非表示
一覧(List)タブの操作によって表示される
編集(Edit)タブまたは詳細(Details)タブ選択中に表示
詳細(Details)
一覧(List)タブ選択中は非表示
一覧(List)タブの操作によって表示される
編集(Edit)タブまたは詳細(Details)タブ選択中に表示
「一覧」(List)タブにロケーション一覧を表示する
表示項目は以下の通りである
チェックボックス
アクション(閲覧・編集・削除)
「Type」:ロケーションタイプ
押下すると一覧のロケーションをソートする。「Name」
押下すると一覧のロケーションをソートする。「URI」
押下すると一覧のロケーションをソートする。「Default」:デフォルトの状態
押下すると一覧のロケーションをソートする。「Size」:使用量の情報
押下すると一覧のロケーションをソートする。「Quota Size」:ロケーションの使用上限
押下すると一覧のロケーションをソートする。「Created」:ロケーションの作成時間
フォーマット:「YYYY-MM-DD hh:mm:ss.tttttt」
押下すると一覧のロケーションをソートする。「Updated」:ロケーションの更新時間
フォーマット:「YYYY-MM-DD hh:mm:ss.tttttt」
押下すると一覧のロケーションをソートする。「Buckets」リンク
リンクをクリックすると、【Admin > Files > Bucket画面】に移動し、当該ロケーションが属するバケット一覧がフィルターされる
「フィルターを追加▼」(Add Filter▼)ボタンをクリックすると、以下の追加可能なフィルターリストを表示し、フィルター名をクリックすると当該フィルタの入力エリアを追加する
フィルター名
「Default」
フィルター方式の選択肢:等しい(equals)、等しくない(not equal)
- 選択したフィルター方式に対して「はい」「いいえ」
「Created」
フィルター方式の選択肢:等しい(equals)、等しくない(not equal)、より大きい(greater than)、より小さい(smaller than)、間(between)、間ではなく(not between)、空(empty)
- 入力された文字列を使い、選択したフィルター方式で絞り込む
「Updated」
フィルター方式の選択肢:「Created」と同じである
- 入力された文字列を使い、選択したフィルター方式で絞り込む
設定したフィルターは「適用」(Apply)ボタンを押下することで一覧に適用される
「フィルターをリセット」(Reset filter)ボタンを押下すると、設定したフィルターがリセットされる
「選択▼」(With selected▼)ボタンをクリックすると、以下の追加可能な機能(現在削除ボタンのみ)を表示する
レコードにチェックを入れない場合、「削除」(Delete)ボタンを押すと、エラーメッセージを表示する
メッセージ:
日本語:「少なくとも一つのレコードを選択してください。」
英語:「Please select at least one record.」レコードにチェックを入れる場合、「削除」(Delete)ボタンを押すと、確認ダイヤログを表示する
メッセージ:
日本語:「選択したレコードを削除してもよろしいですか。」
英語:「Are you sure you want to delete selected records?」「OK」ボタンを押すと、該当ロールを削除し、メッセージを画面上部に表示する
メッセージ:
日本語:「レコード数+レコードが正常に削除されました。」
英語:「Record was successfully deleted.」「キャンセル」(Cancel)ボタンを押すと、確認ダイヤログを閉じる
検索テキストボックスでロケーションを検索する
プレースホルダー:「Search: URI, name」
任意テキストを入力し、キーボードでの「Enter」を押すと、ロケーション検索を行う
テキストボックスの右端での「X」ボタンを押すと、検索条件がクリアーされる
ロケーション行に目アイコンを押すと、該当ロケーションの詳細情報を「詳細」(Details)タブに表示する
表示項目:Type、Name、URI、Default、Size、Quota Size、Created、Updated、Buckets
「Buckets」リンクをクリックすると、【Administration > Files (ファイル管理) > Bucket (バケット) 画面】に移動し、当該ロケーションが属するバケット一覧がフィルターされる
ロケーション行に鉛筆アイコンを押すと、該当ロケーションを「編集」(Edit)タブに表示し、ロケーションの情報が編集できる
ロケーション行に削除アイコンを押すと、該当ロケーションを削除し、メッセージを画面上部に表示する
メッセージ:
日本語:「レコード数+レコードが正常に削除されました。」
英語:「Record was successfully deleted.」「一覧」(List)から「作成」(Create)タブを押すと、「編集」(edit)タブに移動しロケーションを新規作成できる
入力情報:
「Name」:必須項目
入力パターン:「^[a-z][a-z0-9-]+$」「URI」:必須項目
「Type」
選択肢:Amazon S3「access_key」
「Type」に「Amazon S3」を選択する時表示する「secret_key」
「Type」に「Amazon S3」を選択する時表示する「endpoint_url」
「Type」に「Amazon S3」を選択する時表示する「send_file_directrly」
「Type」に「Amazon S3」を選択する時表示するチェックボックス
デフォルト:チェックあり「Quote Size」:使用上限
「Default」
デフォルト:チェックなし
「保存」(Save)ボタンを押すと、設定内容をバリデーションチェックし、エラーがない場合、設定されたロケーション内容をロケーション一覧に追加させ、メッセージをロケーション一覧に表示させる
メッセージ:
日本語:「レコードが正常に作成されました。」
英語:「Record was successfully created.」アクセスコントロールをデータベースに保存する
テーブル名:「files_location」
フィールド名:
・「id」
・「name」
・「uri」
・「default」
・「type」
・「access_key」
・「secret_key」
・「size」
・「quota_size」
・「max_file_size」
エラーメッセージは以下の通りである
必須項目を指定しない場合、エラーメッセージを該当テキストボックスの下に表示する
メッセージ:
日本語:「このフィールドは必須です。」
英語:「This field is required.」「Name」のフォーマットが不正の場合、エラーメッセージを「Name」テキストボックスの下に表示する
メッセージ:「Invalid location name.」
「保存してもう一つ追加」(Save and Add Another)ボタンを押すと、設定されたロケーション内容をロケーション一覧に追加させ、他のロケーションを追加設定可能とする
メッセージを画面上部に表示させる
メッセージ:
日本語:「レコードが正常に作成されました。」
英語:「Record was successfully created.」「保存して編集を続ける」(Save and Continute Editing)ボタンを押すと、設定されたロケーション内容をロケーション一覧に追加させ、該当ロケーションの編集を続けることを可能とする
メッセージを画面上部に表示させる
メッセージ:
日本語:「レコードが正常に作成されました。」
英語:「Record was successfully created.」「キャンセル」(Cancel)ボタンを押すと、設定されたロケーション内容をロール一覧に追加せず、「一覧」(List)タブに戻る
ロケーションごとの使用量(Size)を確認できる
「一覧」(List)タブ及び「詳細」(Detail)タブに確認できる
「Size」の値について
当該ロケーション配下に登録されているコンテンツファイルのサイズ合計
使用量の合計はコンテンツアップロード時に集計する
以下のファイルはシステムで自動削除し、使用量に集計されないようにする
ワークフローで強制終了したアクティビティに登録していたファイル
アイテム登録後に削除したファイル
ファイルアップロード時に Quota Size を越えるときの判定条件として利用する
Location で表⽰される Size + アップロードした Size > Quota Size で判定する
設定キー:「update_location_size」
合計された「Size」の値はデータベースに保存し、表示の際はデータベースに保存した値をつかう
リポジトリ管理者として、ストレージ使用状況をメール通知で確認できる
ロケーションの「Size」が指定された閾値を超えていた場合、当該ロケーションが属する機関のリポジトリ管理者にメール通知を行うメール通知は定期実行とし、実行頻度はコンフィグファイルに変更可能とする
設定キー:「storage_check_settings」
デフォルトは週次とする
ロケーションの「Size」が指定する閾値を超えた場合メール通知の対象する
ロケーションの「Quota Size」が設定されていない場合は処理の対象としない
閾値はコンフィグファイルに指定する
設定キー:「storage_check_settings」
デフォルトは、Quota Sizeに対して「80%」とする
通知先は「リポジトリ管理者」ロールを持つユーザーとする
メール本文は以下の資料を参照する
別紙「ディスク容量メールひな形.docx」を参照。
関連モジュール
invenio-files-rest
処理概要
ロケーション画面の処理
ロケーション画面を表示した際に、invenio_files_rest.admin.LocationModelViewが継承したModelViewよりflask_admin.model.base.index_viewメソッドが呼び出される。このメソッドでfiles_locationテーブルより情報を取得し、LocationModelViewのcolumn_listにあるキーに対応する情報を画面に表示する。
目アイコンを押下してロケーション詳細情報を表示する際に、invenio_files_rest.admin.LocationModelViewが継承したModelViewよりflask_admin.model.base.details_viewメソッドを呼び出す。このメソッド下でfiles_locationテーブルより情報を取得し、LocationModelViewのcolumn_details_listにあるキーに対応する情報を画面に表示する。
鉛筆アイコンを押下して編集画面を表示する際に、invenio_files_rest.admin.LocationModelViewが継承したModelViewよりflask_admin.model.base.edit_viewメソッドをGETで呼び出す。このメソッドでidを用いて、files_locationテーブルより情報を取得し、表示する。
- 編集画面で「保存」ボタンを押下する。そうすると、flask_admin.model.base.edit_viewメソッドをPOSTで呼び出す。このメソッド下で、get_save_return_urlメソッドが呼ばれ、編集内容をfiles_locationテーブルに保存し、更新する。
削除アイコンを押下した際に、invenio_files_rest.admin.LocationModelViewが継承したModelViewよりflask_admin.model.base.delete_viewメソッドをGETで呼び出してfiles_locationテーブルから削除する。
作成タブを押下した際に、invenio_files_rest.admin.LocationModelViewが継承したModelViewよりflask_admin.model.base.create_viewメソッドをGETで呼び出す。LocationModelViewのform_columnsの項目の入力欄を表示する。
- 入力欄に入力後「保存」ボタンを押下する。そうすると、invenio_files_rest.admin.LocationModelViewが継承したModelViewよりflask_admin.model.base.create_viewメソッドをPOSTで呼び出す。このメソッド下でget_save_return_urlメソッドが呼ばれ、新しいバケットの情報をfiles_bucketテーブルに保存する。
ロケーションの使用量合計はコンテンツアップロード時に集計する
メール通知の定期実行を設定する
パス:
https://github.com/RCOSDP/weko/blob/v0.9.22/scripts/populate-instance.sh#L460-L462設定キー:「storage_check_settings」
現在の設定値:
${INVENIO_WEB_INSTANCE} admin_settings create_settings \
2 "storage_check_settings" \
"{'threshold_rate': 80, 'cycle': 'weekly', 'day': 0}"
バケットごとでの使用上限(QUOTA_SIZE)を設定する
パス:
o https://github.com/RCOSDP/weko/blob/v0.9.22/modules/weko-deposit/weko_deposit/config.py#L27設定キー:「WEKO_BUCKET_QUOTA_SIZE」
現在の設定値:
WEKO_BUCKET_QUOTA_SIZE = 50 * 1024 * 1024 * 1024 # 50 GB
一つのファイルの最大容量を設定する
パス:https://github.com/RCOSDP/weko/blob/v0.9.22/modules/weko-deposit/weko_deposit/config.py#L30
設定キー:「WEKO_MAX_FILE_SIZE」
現在の設定値:
WEKO_MAX_FILE_SIZE = WEKO_BUCKET_QUOTA_SIZE
更新履歴
日付 | GitHubコミットID | 更新内容 |
---|---|---|
|
353ba1deb094af5056a58bb40f07596b8e95a562 | 初版作成 |