簡単な一括upload機能が欲しい

簡単な一括upload機能が欲しい

- Joji Kariya の投稿
返信数: 7
moodleのインストールが容易になってきたので、「コンテンツ作成者は自分のPCで試験をしたのち、公開用サーバにアップロードする」のが良いのではないかと思う。コンテンツの原本は作成者がローカルに持っているので、障害対策にもなる。
このときに問題になるのが、コンテンツのuploadが面倒だということだ。できれば、FileSyncのように、uploadディレクトリとローカルのディレクトリを比較して、更新されているものをすべてuploadしてくれるか、更新するファイルのリストを与えたら、すべてuploadしてくれると助かる。
複数ファイルのuploadについてはいろいろ記事があるので、できそうに思うが、誰か詳しい人が作ってくれないものだろうか。
このような機能は、いまサイト間でコースの引越しを行なっており、コンテンツをすべて取り出し、埋め込まれたURLを新サイトに変換し、その後まとめてuploadしており、この最後の処理で必要になる。
Joji Kariya への返信

Re: 簡単な一括upload機能が欲しい

- Minoru Akiyama の投稿
秋山@eラーニングサービスです

少々乱暴ですが、コースバックアップファイルを作って上書きまたは追加モードでリストアをすればよいのではないでしょうか?
Minoru Akiyama への返信

サイズの制限はないのですか

- Joji Kariya の投稿
動画を含むコースでは、ファイルサイズが数十GBになるものもあります。
この方法ではサイズの制限はないのですか?
1ファイルでも60MBなど、大きいものがあります。
Joji Kariya への返信

Re: サイズの制限はないのですか

- Tatsuya Shirai の投稿

 運用の仕方の話になってしまいそうですので,管理者ではないと難しそうですね.

 SQLサーバに蓄積されているデータとコースデータ(フォルダ内)は切り分けて考えられるならば,SQLサーバ上のデータのみをバックアップ(コースデータは含めない)してリストアすることになりますよね.
 コースデータに関してはmoodledataフォルダ内の該当するコースのフォルダを外部からアクセス可能(ネットワークドライブ,FTP?)な状態にして,手作業あるいは同期コピー可能なアプリケーションで更新された部分だけアップロードする,と.

 後者のコースデータの更新をサーバの管理者以外の方がMoodleの標準機能を使わないで行う(:許可する)のは難しいですものねぇ.


 二つのMoodle(一つは公開用,一つはテスト用)があり,それぞれに存在する二つのコースのデータ(SQLサーバ上のデータ,コースファイル)を同期させるMoodleの機能が欲しい.ということですね.数十GBのZIPファイルを作成,コピー(アップロード),展開するのはサーバへの負担も大きそうですから,変更のあった箇所だけ小分けにコピーできたら確かに便利そうです.(そもそも数十GBのファイルをアップロードすることができるかどうか?)

 うーん,でもやはりコースファイルに関しては,サーバ管理者とコース作成者が協力して同期ソフトウェアの類を使うのが効率よさそうですね.となると残りは小テストやWikiなどのSQLサーバ内のデータの更新を行う機能,ですね.一旦,公開用のサーバのコンテンツを削除して,試験用のデータをリストアするのは確かに手間ですからね.

Joji Kariya への返信

簡単な一括upload機能が欲しい環境

- Joji Kariya の投稿
多くの先生にmoodleコンテンツを作成してもらおうと思っています。
一般の先生は、telnetを知らないし(cronの設定ができない)、moodleのサイト管理の仕事もしたくありません。そこで、コース専用サーバを設置し、申請を受けてコースを作成して渡します。先生はサーバのアカウントを持ちませんので、sambaもftpもできません。今はファイルを送ってもらって代理で登録していますが、面倒です。
私はPHPをよく知らないので、javaで作ることにしました。ファイルの同期はJavaで作成しまいたが、コースの先生からの要求だということを確認しなければならないので、moodleから呼び出すインタフェースを作成しなければいけません。それとこのインタフェースをコース管理画面におきたいが、これも難しそうです。
Joji Kariya への返信

Re: 簡単な一括upload機能が欲しい環境

- Tatsuya Shirai の投稿

 コースファイルの同期はJavaを使用するということですね.

 あと残るはリンク(コースのシリアル番号が異なるなど)の修正ですね.
 SQLデータベースに格納されているデータはbackupの際に単一のXMLファイルに格納されていたと思います.backupしたZIPファイルからXMLファイルを取り出して,sedをかける,あるいはMoodle上でPHPを用いて置換を行うのはデータ構造さえ把握すれば機械的に行うことができるかも知れませんね.

Tatsuya Shirai への返信

開発環境と公開環境の同期が目的

- Joji Kariya の投稿
バックアップのことは考えていませんでした。
教材の開発環境と公開環境の同期を目的としています。
教材作成者は、自分のPC上にサイトを作成し、そこで教材を開発します。テストが終わったら、教材を公開用サイトにuploadします。
今支援している対象は、音声や画像を含む教材を使った小テストです。多数のファイルをuloadしなければならないことと、指摘されたように、教材中のサイトと連結したURLを変換する必要があります。
後者はすべてローカルで行なえば良いので、すでにJavaで作りました。単純な文字列の置き換えなので、簡単です。ソースディレクトリをターゲットディレクトリを指定して、拡張子を見て置換かコピーを判断しているだけです。こうしてできたターゲットディレクトリをまとめてuploadします。
uploadにはどうしてもPHPのプログラムを作成し、moodleの仕組みを調べないといけないので、ハードルが高いのです。

files/index.php を改造することで、コース管理に要素を追加せずに済ませることにしました。
Tatsuya Shirai への返信

backupの利用は有用そうだ

- Joji Kariya の投稿
教材をシステムから独立に持つことにこだわっていたので、backupの利用を考えていませんでした。実際には、小テストの登録はけっこう面倒くさいので、サイト間でのコースの移転をするときには、backupファイルを使うのが有用だと思います。
backup中のリンクを書き換えて別のサイトに登録する手順を考えてみます。