コンテンツファイル管理

  • 目的・用途

本機能は、アイテムに登録されたファイルの情報を表示し、ファイルバージョンを管理する機能である。

  • 利用方法

アイテム詳細画面のファイル一覧からファイルの情報の閲覧、【information】を押下して詳細情報の閲覧をし、【download】を押下してファイルのダウンロードを行う。

  • 利用可能なロール

ロール システム
管理者
リポジトリ
管理者
コミュニティ
管理者
登録ユーザー 一般ユーザー ゲスト
(未ログイン)
利用可否
  • 機能内容

1. ファイルの情報を表示する

  • 【アイテム詳細画面】の上端にファイルの情報を表示するアイテム登録時に選択された表示形式に応じてファイルの情報を以下のように表示する

    • 表示形式: 簡易表示(Simple)

      • 登録されたファイル一覧を表示する。「Name/File (名前 / ファイル)」列にファイル名を表示し、ラベルが登録されている場合はファイル名の代わりにラベルが表示される。
        コンテンツファイルが登録されていない場合は、「Name/File (名前 / ファイル)」列に本文URLが表示される。ラベルが登録されている場合は本文URLの代わりにラベルが表示される。

        • ファイル名リンク:コンテンツファイルをダウンロードする。
          コンテンツファイルが登録されていない場合はリンク先のURLへ遷移する。

        • オープンアクセス指定日より前は「Download is available from YYYY/MM/DD.」と表示する。日付が一桁の場合、0埋め表示をしない。
          ログインしているロールが該当登録者、管理者以外の場合は、公開されていないファイルを選択すると、「権限が必要です (Permission required)」と表示する。STATS_WEKO_DEFAULT_TIMEZONEに設定されたタイムゾーンに基づく時刻を表示する。

      • ファイルに対してのアクション

        • 【ダウンロード(Download)】:該当ファイルをダウンロードする。
          コンテンツファイルが登録されていない場合はリンク先のURLへ遷移する。

        • 【Information】:該当ファイル詳細画面に移動する。

    • 表示形式: 詳細(Detail)

      • 登録されたファイル一覧を表示する。「Name/File (名前 / ファイル)」列にファイル名を表示し、ラベルが登録されている場合はファイル名の代わりにラベルが表示される。
        コンテンツファイルが登録されていない場合は、「Name/File (名前 / ファイル)」列に本文URLが表示される。ラベルが登録されている場合は本文URLの代わりにラベルが表示される。

        • ファイル名リンク:コンテンツファイルをダウンロードする。
          コンテンツファイルが登録されていない場合はリンク先のURLへ遷移する。

        • オープンアクセス指定日より前は「「Download is available from YYYY/MM/DD.」と表示する。日付が一桁の場合、0埋め表示をしない。ログインしているロールが該当登録者、管理者以外の場合は、公開されていないファイルを選択すると、「権限が必要です (Permission required)」と表示する。

      • ファイルのライセンス

        • 「Write your own license」を選択した場合、テキストボックスに入力されたライセンス値を表示する。

        • 「Creative Commons」ライセンスから選択した場合、該当ライセンスアイコンを表示する。

          • システムの表示言語が日本語の場合、ライセンスアイコンを押すと、日本語版のリンク先へ移動する。

          • システムの表示言語が日本語以外の場合、ライセンスアイコンを押すと、英語版のリンク先へ移動する。

      • ファイルに対してのアクション

        • 【ダウンロード(Download)】:該当ファイルをダウンロードする。
          コンテンツファイルが登録されていない場合はリンク先のURLへ遷移する。

        • 【Information】:該当ファイル詳細画面に移動する。

    • 表示形式: プレビュー(Preview)

      • ファイルのプレビューを表示する(プレビューの仕様について、「3-2.2 登録されたコンテンツファイル及び課金ファイルをプレビューできる」に参考する)

        • プレビューエリアを開閉する。

        • スライドナビゲーションで、プレビュー対象を切り替える。
          コンテンツファイルが無い場合は表示形式をプレビュー (Preview)と選択してもプレビューエリアは表示しない。また、コンテンツファイルがない場合表示形式に関係なく、【プレビュー (Preview)】、【ダウンロード (Download)】ボタンを表示しない。
          公開前のアイテムがある場合は「Cannot preview file」と表示する。
          該当登録者、管理者以外で公開前のアイテムがある場合は「Restricted Access」と表示する。

      • ファイルサイズによりプレビューできない場合は、「Cannot preview file」の表示に、「 file size exceeded. 」が表示される。表示可能なファイルサイズの閾値は定数「WEKO_ITEMS_UI_FILE_SISE_PREVIEW_LIMIT」より設定できる。登録されたファイル一覧を表示する。

        • ファイル名リンク:コンテンツファイルをダウンロードする。
          コンテンツファイルが登録されていない場合はリンク先のURLへ遷移する。
      • ファイルに対してのアクション

        • 【ダウンロード(Download)】:該当ファイルをダウンロードする。
          コンテンツファイルが登録されていない場合はリンク先のURLへ遷移する。

        • 【Information】:該当ファイル詳細画面に移動する。

        • 【プレビュー(Preview)】:該当ファイルのプレビューをプレビューエリアに表示する。

2. 登録されたコンテンツファイル及び課金ファイルをプレビューできる。

  • ファイルを登録する時、アイテム登録画面での表示形式を「プレビュー(Preview)」を選択すると、アイテム詳細画面に登録されたファイルをプレビューできる。

  • invenio-previewerが提供するすべてのファイルプレビューを利用できる。

  • 対応しているファイルタイプ:

    • Markdown

    • JSON/XML

    • CSV

    • PDF

    • Simple Images(PNG、JPG、GIF)

    • Zip

    • Jupiter Notebook(.jpynbファイル)

    • MS Office

    • 動画、音声(MP3、MP4、WEBM、OGG、WAV)

  • 複数ファイルを登録する場合、ファイルをスライド表示でプレビューできる。

    • プレビューエリアにスライドナビゲーションを表示する。

      • プレビュー切替はコンテンツファイル一覧の並びに依存する。

      • スライドナビゲーションにて、先頭(|\<)/前(<)/次(>)/末尾(>|)のスライドへ移動できる。

  • PDF形式のファイルに対して、PDFにはカバーページが付与される場合、PDFカバーページはコンテンツファイルの1ページ目に付与し、コンテンツファイルの中身と合わせてカバーページをプレビューに表示する

  • PDF形式のファイルのプレビューは、拡大率やページ数を変更する機能のあるツールバーに囲われた状態で表示される。

  • ファイルプレビューエリアを開閉できる

  • プレビューエリアでの上部に「プレビュー」リンクをクリックすると、ファイルプレビューエリアを開閉する。

  • 表示形式をプレビューとしたJPEGファイルは、ファイルバージョンの管理を行う。

3. コンテンツファイル及び課金ファイルにアクセス制限がかけられている。

  • アクセス制限の内容を「5.2. 実装方法」での「(1)アイテム詳細画面に表示、ダウンロードする処理」を参照する。

4. コンテンツファイルごとに更新履歴を表示する。

  • アイテム詳細画面の各ファイルの表示の【Information】ボタンを押すと、該当ファイル詳細画面に移動する。

    • アイテム詳細画面と同様にファイルのプレビューを表示する

    • ファイル情報の属性情報を表形式で表示する。アイテム登録/編集時に登録していない属性情報は表示されない

      • 公開日: {YYYY}-{MM}-{DD} 形式 (※公開日は必須のため必ず表示される)。エンバーゴが指定されている場合は、エンバーゴ日。オープンアクセスの場合はアイテム公開日を表示する。

      • 表示名(FileName): ファイル情報の表示名

      • 本文URL(Text URL): {protocol}://{host}/records/{id}/files/{ファイル名} 形式

      • ラベル(Label): ファイル情報で入力したラベル名

      • オブジェクトタイプ(Object Type): ファイル情報で選択したオブジェクトタイプ

      • フォーマット(Format): システムが出力したフォーマットの値

      • サイズ(Size): システムが出力したサイズ、または手入力したサイズ(複数入力可能)

      • 日付タイプ(Date Type): ファイル情報で選択した日付タイプ(複数入力可能)

      • 日付(Date): {YYYY}-{MM}-{DD} 形式(複数入力可能)

      • バージョン情報(Version Information): アイテム登録/編集時に入力した値

    • ファイル詳細画面では、アイテム詳細画面のファイル情報に加えて、「バージョン」タブに更新履歴情報を表示する。
      更新履歴の表示項目は、以下とする。

# 表示項目 説明 備考
1 バージョン(Version) ファイルのバージョンを表示する
最新バージョンはCurrentと表示する
コンテンツファイルが削除された場合は該当バージョンを論理削除する
2 更新日時(Date Modified) コンテンツファイルの登録日時 ISO8601のTZ付き形式とする
形式:「YYYY-MM-DD hh:mm:ss」
3 オブジェクトファイル名(Object File Name)

コンテンツファイルにアクセス可能なリンクになっている

※ファイルサイズが大きい場合はマルチパートダウンロードのURLへ差し替えとなる。 マルチパートダウンロードの詳細は、[アイテム詳細]>[コンテンツファイル管理]>[ マルチパートダウンロード処理について]を参照

/api/files/BUCKET_ID/FileName
4 ファイル容量(File Size) ファイル容量をバイト表示する
5 ファイルハッシュ値(File Hash Value) sha256ハッシュ値
6 投稿者名(Contributor Name) ファイルを登録したユーザ名 ゲストユーザの場合は非表示とする
7 表示/非表示(Show/Hide) 本項目は管理者またはアイテム登録者のみ表示される
本項目を最新バージョンの行に表示しない
また、"表示"に設定した場合、該当行が全ユーザに表示される
  • 該当アイテムが非公開と設定すれば、

    • 該当登録者、管理者以外の場合、ファイル詳細画面に移動せずに、「権限が必要です (Permission required)」を表示する

    • ゲストユーザの場合、ログインをリクエストする

  • ファイル詳細画面が既に表示される場合、ファイルが「公開しない」(Do not publish)と変更すれば、ファイル詳細画面をリロードする。
    該当登録者、管理者以外(ゲストユーザーを含む)に対して、「アクセス制限」のエラーメッセージをプレビューエリアに表示する

  • ファイル情報エリアの表示/非表示は、以下の図の After の表に従って表示制御する
    別紙「変更前後のマトリクス.png」を参照。

    • ※1 オープンアクセス指定日より前は「YYYY年MM月DD日からダウンロード可能です」とファイル情報エリアのName/File欄に表示する

    • ※2 登録ユーザ権限以下のユーザがログインした状態で、ファイル情報エリアのダウンロードボタン、プレビューボタンを押下した際、「権限が必要です (Permission required)」と表示する

    • ※3 「ログインユーザーのみ」の場合、「アクセス制限」(英「Restricted Access」)と表示する

  • コンテンツファイル登録時にオープンアクセス日を未来日に指定し、指定日より前に表示した場合、以下のメッセージをファイル情報エリアのName/File欄に表示する。オープンアクセス日はローカル時間で表示される。
    (日)「YYYY年MM月DD日からダウンロード可能です」
    (英)「Download is available from YYYY/MM/DD.」

  • ファイルのリンク、[ダウンロード(Download)]ボタン、[プレビュー(Preview)]ボタンを押下すると、ログイン画面を表示する(Shibboleth連携の場合はShibbolethログイン画面を表示する)

    • ログイン認証時、権限のチェックを行う。

      • ログインユーザーロール(上記マトリクス※2)の場合

        • ログイン認証後、以下のメッセージをポップアップ表示する。
          (日)「YYYY年MM月DD日からダウンロード/プレビュー可能です」
          (英)「Download / Preview is available from YYYY/MM/DD.」

        • 既にログインしている状態で、ファイル情報エリアのダウンロードボタンもしくはプレビューボタンを押下した際、上記メッセージを表示する

      • 登録ユーザーロール以上の権限の場合(登録ユーザ、リポジトリ管理者、コミュニティ管理者、システム管理者)

        • ログイン認証後、ファイルのダウンロード/プレビューが行える
  • ゲスト(非ログイン)ユーザが参照する場合、ファイル情報エリアを表示し、以下のメッセージをファイル情報エリアのName/File欄に表示する
    (日)「アクセス制限」
    (英)「Restricted Access」

  • ゲスト(非ログイン)ユーザがログイン認証後は、アイテム詳細表示画面に遷移する

  • アイテム詳細画面の各ファイルの「Actions」表示欄に「申請」ボタンを表示する。「申請」ボタンを押すと、アイテム登録時に指定した提供方法に応じたワークフローが起動すること

    • 提供方法に一致しないユーザが「申請」ボタンを押下した場合はモーダルで警告メッセージを表示する

    • 起動したワークフローが「作業済(Done)」になった際、ワークフローを起動したユーザにファイルのダウンロードリンクをメールで送信すること

5. コンテンツファイルのアクセス制御

コンテンツファイルが「未来日」・「ログインユーザのみ」・「公開しない」設定であり、インデックス条件が、アイテムが所属するインデックスとその上位のインデックスが「公開」設定(未来日では無い)の場合、以下のようにアクセス制御を行う

  • Guest

    • 【ダウンロード (Download)】押下: ログイン要求をする

    • DLのURLを入力: ログイン要求をする
      ※入力するURLは登録者(Contributor)以上がボタンを押下したときのURL( } )とする

    • ログイン要求でログインしたあと、ロールの種類に応じて画面遷移する

      • 登録者以外(ログインユーザ): "Permission required"を表示

      • 登録者以上: DL可能

    • Informatonボタン押下: ログイン要求をする

    • Informaton画面のURLを入力: ログイン要求をする

    • ログイン要求でログインしたあと、ロールの種類に応じて画面遷移する

      • 登録者以外(ログインユーザ): "Permission required"を表示

      • 登録者以上:Information画面を表示

  • Authenticated User

    • 【ダウンロード (Download)】ボタン押下: "Permission required"を表示する

    • DLのURLを入力: "Permission required"を表示する
      ※入力するURLは登録者(Contributor)以上がボタンを押下したときのURL( } )とする

    • 【Informaton】押下: "Permission required"を表示する

    • 「Informaton」画面のURLを入力: "Permission required"を表示する

  • 「制限公開」設定のファイルについては、下記条件の場合、DLボタンの代わりにApply(申請)ボタンが表示される。

    • 1.対象のコンテンツ(=ファイル)のアクセスロールが「制限公開」(open_restricted)である。

    • 2.該当コンテンツをダウンロードする権限が、画面表示しているユーザ(未ログイン含む)に無い。

    •  ※アイテム登録者やリポジトリ管理者のみならず、申請によって権限を得ているログインユーザもダウンロード権限があるとみなす。

      • Applyボタン押下の処理は、本書「実装方法」の「ダウンロード処理について」にある、「アクセスが「制限公開」(Restricted Access)と設定されているコンテンツに対して」の説明を参照
    • Informaton画面にて、「シークレットURLボタン」が表示される。

      • 下記をすべて満たす場合表示

        • 1.アイテム登録者・またはリポジトリ管理者・システム管理者である。

        • 2.管理画面の制限公開画面にて、シークレットURLの表示が有効である。

        • 3.ファイルが「公開しない」である。または、ファイルが「オープンアクセス日を指定する」かつ指定日が未来日である。

      • シークレットURLボタンを押下すると、シークレットURLを発行し、画面表示しているユーザのメールアドレスにメール通知する。シークレットURLはURLを知っていれば誰でも対象のコンテンツファイルをダウンロードできるURL。(有効期限とダウンロード回数の制限を設定可能)

  • 関連モジュール

  • weko-records-ui

  • 処理概要

1. 設定

  • ファイルをプレビュー表示するため、ファイルからPDF形式に変換し、テンポラリーフォルダーに書き込む処理を行う

  • テンポラリーフォルダーの初期値は「/var/tmp」であり、以下のConfigファイルで設定できる
    https://github.com/RCOSDP/weko/blob/v0.9.22/modules/invenio-files-rest/invenio_files_rest/config.py#L128

    • 設定キー:「FILES_REST_DEFAULT_PDF_SAVE_PATH」

    • 現在の設定値:FILES_REST_DEFAULT_PDF_SAVE_PATH = tempfile.gettempdir()

  • 予期せぬエラーによりファイルをテンポラリーフォルダーに書き込むことができない場合、以下のメッセージがプレビュー画面に表示される
    メッセージ:「Unexpected server response (502) while retrieving PDF + ファイルパス」

2. 実装方法

  • ファイルビューアのライブラリ:pdfjs-dist (ver. 1.4.192)

  • weko_records_ui.permissions.check_file_download_permissionを使用する。

(1)アイテム詳細画面に表示、ダウンロードする処理

  • ファイル情報の表示処理について
    アクセスしているユーザーの権限が管理者であるかどうか、weko_records_ui.permissions.check_file_download_permissionにて「WEKO_PERMISSION_SUPER_ROLE_USER」を使用する

    • 権限が管理者の場合、アイテムに登録されるファイルの表示形式に応じてファイルの情報を取得し、表示する

    • 権限が管理者ではない場合、ユーザーの権限及びアクセス権限をチェックする

      • コンテンツファイルに対して

        • コンテンツのアクセスが「オープンアクセス」とした場合、ファイルの情報を取得し、表示する

        • コンテンツのアクセスが「オープンアクセス日を指定する」とした場合、以下のように制限する

          • オープンアクセス日が経過していない場合、管理者または登録者、または設定されているグループに所属するユーザーには該当コンテンツファイルを表示、ダウンロードできる

          • オープンアクセス日が経過していない場合、権限がないユーザーには該当コンテンツファイルを表示しない
              ⇒権限が無いユーザーには「「Download is available from YYYY/MM/DD.」と表示する

          • オープンアクセス日が経過した場合、すべてのユーザーは該当コンテンツファイルを表示、ダウンロードができる

        • コンテンツのアクセスが「ログインユーザのみ」とした場合、以下のように制限する

          • weko_records_ui.permissions.checl_file_download_permissionでcheck_user_group_permissionを呼び出して使用する。

          • 設定されているグループに所属するユーザーには該当コンテンツファイルを表示する

          • 設定されているグループに所属しないユーザーには、該当コンテンツファイルを表示しない

        • コンテンツのアクセスが「公開しない」とした場合、以下のように制限する

          • weko_records_ui.permissions.checl_file_download_permissionでcheck_user_permissionを呼び出して使用する。

          • 管理者またはアイテム登録者には該当コンテンツファイルを表示する

          • 権限がないユーザーには該当コンテンツファイルを表示しない

        • コンテンツのアクセスが「制限公開」とした場合、以下のように制限する

          • 管理者またはアイテム登録者には該当コンテンツファイルを表示する

          • 権限がないユーザーには、「アクセス制限(Restricted Access)」と表示する

            • 「Actions」に、ダウンロードボタンのかわりに、「申請」(Apply)ボタンを表示する
      • 課金ファイルに対して

        • コンテンツのアクセスを「オープンアクセス」とした場合、ファイルの情報を表示する

        • コンテンツのアクセスを「オープンアクセス日を指定する」とした場合、以下のように制限する
          ・オープンアクセス日が経過していない場合、該当コンテンツファイルを表示する
          ・オープンアクセス日が経過した場合、該当コンテンツファイルを表示しない

        • コンテンツのアクセスが「ログインユーザのみ」とした場合、
          ・設定されているグループに所属するユーザーには該当コンテンツファイルを表示する
          ・設定されているグループに所属しないユーザーには、該当コンテンツファイルを表示しない

        • コンテンツのアクセスが「公開しない」とした場合、ファイルの情報を表示しない

  • ダウンロード処理について

    • コンテンツファイルに対して
      アイテム詳細画面に表示している、かつログインしている場合、ダウンロードできる

    • 課金ファイルに対して

      • コンテンツのアクセスが「オープンアクセス」とした場合、ファイルの情報を取得し、ダウンロードできる

      • コンテンツのアクセスが「オープンアクセス」以外とした場合、ファイルの情報を取得し、追加で以下の制限を実施する

        • 価格が設定されていないグループのユーザーは課金ファイルをダウンロードできない

          • アイテム詳細画面及び課金ファイルのリンクを押下したときに、ダウンロード可能かを判断する
            ・ゲストユーザの場合:ログイン画面に遷移する
            ・設定されていないグループの場合:「本ファイルの参照権限がないためダウンロードできません。」とポップアップでエラーメッセージを表示する
            ・設定されているグループの場合:「本ファイルは課金ファイルです。 (価格:XXXXX)。 ダウンロードしますか。」とポップアップで確認メッセージを表示する
             はい:ファイルをダウンロードする
             いいえ:ファイルをダウンロードせず、自画面に戻る
        • 複数のグループに所属するユーザーには該当する価格の最低値が適用される

          • アイテム詳細画面及びファイル詳細画面のコンテンツファイルのリンクを押下したときに、ユーザが所属しているグループを確認する
            対象のユーザが複数のグループに所属していた場合は、各グループで設定している課金ファイルの価格のうち、最低値のものを採用する
    • アクセスが「制限公開」(Restricted Access)と設定されているコンテンツに対して

      • weko_records_ui.permissions.check_file_download_permissionでcheck_open_restricted_permissionを呼び出して使用する。

      • 管理者または登録者に対して、アイテム詳細画面、ファイル詳細画面に、ファイルの情報を取得し、ダウンロードできる

      • 権限がないユーザーは、ファイルをダウンロードするために、利用申請を実施する必要がある

        • コンテンツのアクセスが「制限公開」で「提供方法:ロール」を「Guest(非ログインユーザ)」または「Contributor」等の任意のロールとした場合、以下の操作が行える

        • 提供方法に一致するユーザーがアイテム詳細画面の【申請 (Apply)」ボタンを押下した際に利用申請設定時に設定されている利用規約をモーダル画面に表示する

          • 利用規約について

            • 利用規約文表示エリア上部に「利用規約 (Terms and Conditions)」を固定で表示する

            • 利用規約文表示エリア下部に「利用規約を確認の上、スクロール最下部にある「利用規約に同意する」にチェックを入れてください (I have read and agreed to the Terms and conditions)」を固定で表示する

            • [利用規約に同意する」ラベルクリック時もチェックボックスのオンオフができるようにする

            • 利用規約を最後まで確認すると「利用規約に同意する」チェックボックスをチェックできる。チェック前は「次へ」ボタンを非活性とする

          • 利用規約画面での「次へ」ボタンを押下する挙動について

            • 「 提供方法:ロール (Providing Method: Role)」が「Guest(非ログインユーザ)」で設定される場合、メールアドレスが入力できるモーダル画面が表示される。メールアドレスを入力し「Enable」ボタンを押下するとメールが送付される。

              • 受信したメール文のリンクをクリックするとワークフローに定義されているアクション画面(アイテム登録画面など)に遷移する

              • リンクはランダムなURLとトークン値から構成し、両者が一致した場合に利用登録ワークフローへのリンクとして機能する

            • 「Contributor」等の任意のロールが「 提供方法:ワークフロー (Providing Method: WorkFlow」で設定される場合、指定されたワークフローの画面に遷移する

          • ワークフローが終了された時点、コンテンツファイルダウンロードのリンクをメールで追記する。リンクの有効期限とダウンロード回数は【Administration > 設定 (Setting) > 制限公開 (Restricted Access)画面】での「コンテンツファイルのダウンロード」(Content File Download)エリアで設定される

          • ダウンロードのリンクへアクセスする時、リンクの有効期限とダウンロード回数が超えない場合、コンテンツファイルがダウンロードできる。ダウンロード回数がカウントダウンされる

            • weko_records_ui.utils.validate_onetime_download_tokenを使用する。

            • 有効期限を超過した場合、エラーメッセージが表示される
              日本語:「ダウンロード有効期限を超過しています。」
              英語:「 The expiration date for download has been exceeded. 」

            • ダウンロード回数を超過した場合、エラーメッセージが表示される
              日本語:「ダウンロード上限回数を超過しています。」
              英語:「 The download limit has been exceeded. 」

          • 上記によってコンテンツファイルがダウンロードできる間は、申請ボタンはダウンロードボタンになり、ダウンロードボタン押下でファイルをダウンロードできる。

            • 有効期限を超過した場合、またはダウンロード回数を超過した場合、画面を再表示すると権限が無くなったため申請ボタンに戻る。再表示せずにダウンロードボタンを押下した場合、権限エラーになる。

            • 申請ボタンからダウンロードボタンになるのは、そのアイテムの制限公開のコンテンツファイルすべて(承認が行われた時点でのすべて)である。

            • 有効期限とダウンロード回数はコンテンツファイルごとに管理される。一方で、リンクからのダウンロード、ダウンロードボタンからのダウンロードは同じ有効期限とダウンロード回数を参照する。(ダウンロード回数2回の場合に、リンクからのダウンロード1回、ダウンロードボタンからのダウンロード1回を行うと、ダウンロードの残り回数は0になる)

        • 制限公開用のコンテンツファイルでの提供方法に一致しないユーザが「申請」ボタンを押下した場合はモーダルで警告メッセージを表示する
          警告メッセージ:
          日本語:「このデータは利用できません(権限がないため)。」
          英語:「This data is not available for this user.」

        • 制限公開で登録したコンテンツファイルを最初ダウンロードした際にユーザのアカウントに応じた利用報告ワークフローリンクをメールで通知できる

          • ゲストユーザの利用報告ワークフローに対して、
            リンクの有効期限は【Administration > Setting > Restricted Access画面】での「利用報告ワークフローへのアクセス」(Usage Report Workflow Access)エリアで設定される

            • 設定された有効期限を超過した場合、対象の利用報告ワークフローのステータスを「キャンセル」に自動で更新する

            • 設定された有効期限を超過したリンクにアクセスした場合は、エラーページを表示する
              日本語:「指定したリンクはアクセス有効期限を超過しています。 」
              英語:「The specified link has expired.」
              weko_workflow.utils.validate_guest_activity_expiredを使用する。

  • シークレットURLについて

    • シークレットURLへアクセスする時、URLの有効期限とダウンロード回数が超えない場合、コンテンツファイルがダウンロードできる。ダウンロード回数がカウントダウンされる

      • 有効期限を超過した場合、エラーメッセージが表示される

        • 日本語:「ダウンロード有効期限を超過しています。」

        • 英語:「 The expiration date for download has been exceeded. 」

      • ダウンロード回数を超過した場合、エラーメッセージが表示される

        • 日本語:「ダウンロード上限回数を超過しています。」

        • 英語:「 The download limit has been exceeded. 」

    • 有効期限とダウンロード回数は、URLごとに管理される。(制限公開の有効期限・ダウンロード回数とは別管理となる)

      -

  • 「PDFカバーページ」処理について

    • ファイルのプレビュー及びファイルダウンロードにて、「PDFカバーページ」処理を実施する

    • weko_records_ui.admin.PdfCoverPageSettingView.indexを使用する。

    • 以下の条件を満たす場合、PDFカバーページを作成する

      • ファイルのプレビューの権限がある

      • 【Administration > Setting > PDF Cover Page】及び【Administration > インデックスツリー管理 (Index Tree) > ツリー編集 (Edit Tree)】でPDFカバーページの設定が有効になっている

      • 対象ファイルの形式は「PDF」形式である

      • 対象ファイルがパスワード付かない

  • プレビュー表示処理について

    • コンテンツファイルが「preview」の場合、詳細画面にプレビューを表示する。
      weko_records_ui.utils.get_file_info_listを使用する

(2) ファイル詳細画面に表示、ダウンロードする処理

  • 表示処理について

    • 該当アイテムが公開しているかどうか、チェックする

      • 該当アイテムが非公開である場合

        • ゲストユーザに対してログインリクエストとする

        • 該当登録者、管理者の場合、ファイルの情報(バージョン情報を含む)を取得し、表示する

        • 他の権限に対して、「権限が必要です」のエラーメッセージを表示する

      • 該当アイテムが公開している場合
        (1)での「ファイル情報の表示処理について」のようにチェックする

    • 権限があるユーザには、該当するファイル詳細画面に表示する

    • 権限がないユーザには、「アクセス権限」のエラーメッセージを表示する

  • プレビュー表示処理について(1)での「プレビュー表示処理について」のようにチェックする

  • ダウンロード処理について
    (1)での「ダウンロード処理について」のようにチェックする

(3)ファイルバージョンの情報をweko_records_ui.view.default_view_methodで取得し、更新履歴情報を表示する

  • データベースから該当ファイルの情報を以下のように取得する

    • 更新日時:files_object.updated

    • オブジェクトファイル名:files_objectkey

    • ファイル容量:files_files.size

    • ファイルハッシュ値:files_files.checksum

    • 投稿者名:userprofiles_userprofile.username

    • 表示/非表示:files_object.is_show

【補足】

  • ファイルプレビューのビューアは、ファイルのアクセス権限と同様。
    ファイルのアクセス権限がないユーザーは、ファイルプレビュー及びファイルの情報を見ることはできない

(4)マルチパートダウンロード処理について

  • 閾値を超えるサイズのファイルについては、マルチパートダウンロードを行う。マルチパートダウンロードは、本文URLとは異なるURLからファイルをダウンロードできる。

  • 閾値は、定数「MAX_DOWNLOAD_SIZE_AT_ONE_TIME」にて設定できる。1パートあたりのサイズは、定数「 DOWNLOAD_SIZE_IN_ONE_PART」にて設定できる。

  • ダウンロードのボタン・リンクを押下すると、大容量ファイルダウンロードを開始する旨のメッセージが表示される。

  • OK押下すると、「名前を付けて保存」のファイルピッカーを表示する。

  • ファイルピッカーにて、ダウンロードファイルの名前を指定すると、ファイルダウンロードが開始される。ダウンロード中は画面操作が行えなくなり、また画面を閉じるとダウンロードが中断されてしまう。

  • ダウンロード処理が完了すると、画面操作が行えるようになり、成功時は緑の帯で、失敗時は赤帯でメッセージが表示される。

  • マルチパートダウンロードでは、通常のダウンロードと同じファイルアクセス権限チェックが行われる。

  • マルチパートダウンロードでは、パートの一番最後のダウンロードのタイミングで統計情報が送信される。

  • マルチパートダウンロードでは、PDFカバーページには対応していない。

1TBファイルまではダウンロードの動作を確認済みだが、それより大きいファイルについては、動作を保証していない。

  • 更新履歴

日付 GitHubコミットID 更新内容

2023/08/31

353ba1deb094af5056a58bb40f07596b8e95a562 初版作成

2023/11/11

V0.9.27
2023/12/22 4ec162bf3bdcf843df23863fbf7d5bb36ba875e4 W2023-42

2024/07/1

7733de131da9ad59ab591b2df1c70ddefcfcad98 v1.0.7対応

results matching ""

    No results matching ""