恐らく、以下のAmazon S3 bucketのようなプラグインを使ってアクセスすることになるのだと思います。
[Moodle plugins directory: Amazon S3 bucket]
https://moodle.org/plugins/repository_s3bucket
> S3を追加するのではなく、Moodleのサーバー自身に別ディスクとしてストレージを追加し、追加したストレージに保存した動画コンテンツにMoodleからアクセスできればよいのです。
「管理 > サイト管理 > プラグイン > リポジトリ > リポジトリを管理する」ページで「ファイルシステム」を「有効 & 表示」に設定変更した上で「別ディスク」内のディレクトリを「リポジトリインスタンス」として追加してください。
例えば、サーバに追加された「別ディスク」を「/data」としてマウントした場合、以下のようなLinuxコマンドにより、「別ディスク」内のディレクトリ「external_repository」をMoodleからアクセス可能なリポジトリインスタンスとして追加できます。
# cd /data
# mkdir external_repository
# chown apache. external_repository
# chmod 777 external_repository
# cd /var/www/moodledata/repository
# ln -s /data/external_repository
参考資料:
[File system repository - MoodleDocs]
https://docs.moodle.org/39/en/File_system_repository
Yoshidaさま
お世話になっております。
あれから情報システム部に相談し、以下の対応をしていただきました。
1. 追加でファイルシステムを以下のようにマウント対応(ボールド部分)
Filesystem
1K-blocks Used Available Use% Mounted on
devtmpfs
8202628 72 8202556
1% /dev
tmpfs
8213188 0
8213188 0% /dev/shm
/dev/xvda1
41151788 12037044 29014496 30% /
/dev/xvdf 102687672
61464 97366944 1% /var/www/html/moodledata
2.マウントしたディレクトリのパーミッションを以下に変更
drwxrwxrwx
3 apache apache 4096 Aug 3 10:12 moodledata
次のステップとしては、Moodle > サイト管理 > プラグイン > リポジトリ の「ファイルシステムのリポジトリの設定」でインスタンスをの作成かと思いますが、具体的にどのような作業になりますでしょうか?
リポジトリインスタンスを作成する > ファイルシステムリポジトリの設定 ページに移行しますが、「名称」に何を入力すればよいでしょうか?
Moodleの「config.php」にマウントしたディレクトリを追加する必要はないでしょうか?
以上よろしくお願いいたします。
> 次のステップとしては、Moodle > サイト管理 > プラグイン > リポジトリ の「ファイルシステムのリポジトリの設定」でインスタンスをの作成かと思いますが、具体的にどのような作業になりますでしょうか?
以下の手順ではいかがでしょうか。
- Moodleデータディレクトリ内のリポジトリディレクトリに移動する (例 cd /data/moodledata/repository)。
- マウントした外部ディスク内ディレクトリのシンボリックリンクを作成する (例 ln -s /var/www/html/moodledata)。
- Moodleにサイト管理者としてログインする。
- 「管理 > サイト管理 > プラグイン > リポジトリ > ファイルシステム」に移動する。
- 「ファイルシステムリポジトリの設定」セクションで「管理者によるコースへのファイルシステムリポジトリインスタンスの追加を許可する (管理者のみ設定可)」を有効 (チェック) にする。
- 「保存」ボタンをクリックする。
- 「管理 > サイト管理 > プラグイン > リポジトリ > リポジトリを管理する」に移動する。
- 「ファイルシステム」欄の右側にある「設定」リンクをクリックする。
- 「リポジトリインスタンスを作成する」ボタンをクリックする。
- 「名称」テキストボックスに任意のリポジトリ名を入力する (例 repository001)。
- 「保存」ボタンをクリックする。
> リポジトリインスタンスを作成する > ファイルシステムリポジトリの設定 ページに移行しますが、「名称」に何を入力すればよいでしょうか?
任意のリポジトリ名を入力してください。
> Moodleの「config.php」にマウントしたディレクトリを追加する必要はないでしょうか?
必要ありません。
あれから情報システム部と連携し、追加したディスクに作成したディレクトリに対してシンボリックリンクを設定しました。
リポジトリインスタンスの作成まで無事に完了しました。
アクセス可能かどうか、Moodleのファイルピッカにて確認したのですが、追加したディレクトリにはアクセスできたのですがコピーした「Delivery]フォルダ内のHTMLファイルが表示されず選択できません。
Yoshidaさま
お世話になります。
権限設定の件ではなく、ファイルピッカの使い方でした。
確認不足でした。
ファイルピッカの使い方で質問なのですが、イメージを挿入すると下記のメニューが表示されます。
・ファイルのコピーを作成する
・ファイルのエイリアス/ショートカットを作成する
を選択できますが、実際に「ファイルのエイリアス/ショートカットを作成する」にしても実際の選択したファイルのリンクと異なります。
実際のファイルパス(Moodelのファイルピッカで選択した順番)
movie_data/movies/lms/tdc/Design/*******.png
挿入後のファイルパス
https://aaa.bbb.com/draftfile.php/219/user/draft/135553526/*******.png
イメージファイルの前に「135553526」が付いています。
活動ページごとのID別にイメージがコピーされてしまうのでしょうか?
マウントしたexternal_repositoryに入っているファイルパスそのままを利用することはできないのでしょうか?
ファイルピッカに関しましては以下のオンラインドキュメントをご覧ください。
[File picker - MoodleDocs]
https://docs.moodle.org/39/en/File_picker
[File picker FAQ - MoodleDocs]
https://docs.moodle.org/39/en/File_picker_FAQ
> イメージファイルの前に「135553526」が付いています。活動ページごとのID別にイメージがコピーされてしまうのでしょうか?
はい、そうです。以下のようにlib/weblib.phpの824行目あたりの関数make_draftfile_url()でイメージのURLにコンテクストID ($context->id) が付加されます。
/**
* Factory method for creation of url pointing to draft file of current user.
*
* @param int $draftid draft item id
* @param string $pathname
* @param string $filename
* @param bool $forcedownload
* @return moodle_url
*/
public static function make_draftfile_url($draftid, $pathname, $filename, $forcedownload = false) {
global $CFG, $USER;
$urlbase = "$CFG->wwwroot/draftfile.php";
$context = context_user::instance($USER->id);
return self::make_file_url($urlbase, "/$context->id/user/draft/$draftid".$pathname.$filename, $forcedownload);
}
> マウントしたexternal_repositoryに入っているファイルパスそのままを利用することはできないのでしょうか?
external_repository内のファイルにウェブアクセス可能であれば利用できると思いますが、恐らく、難しいのではないでしょうか。
このディスカッションスレッドは2020年 07月 27日(月曜日) 当初のご質問「コンテンツのエイリアス設定方法について」と異なる内容になっていると思われますため、今回の投稿で私からのお返事は終了とさせて頂きます。