#set_tags(webct,webct 管理)
RIGHT:[[WebCT]]

* FixZip [#a23017a2]

CE6 の課題ツールで、提出物をZIPファイルで一括ダウンロードできるが、

+ ZIPファイル内に入っているフォルダやファイル名がUTF-8になっており、Windowsで展開すると文字化けする。
+ 複数課題をまとめてダウンロードもできるが、この際に課題毎にフォルダにまとめられていない。
+ 提出者毎にフォルダで分けられているが、そのフォルダ名にユーザIDが含まれていない。

という問題がある。これらを解消するように、ダウンロードしたファイルを変換する Python スクリプトを作成した。ダウンロードは以下から。

- &attachref(fixzip-1.0.zip);

(本スクリプトはコマンドラインツールとして、もしくはCGIプログラムとして動作する。)

上記 3 の問題は、フォルダ名に含まれる課題IDを CE6 のデータベースに直接問い合わせて提出者 ID を取得する事で解決している。なので、3 の機能を動作させるには

- スクリプトを動作させるホストに cx_Oracle (Oracle DB にアクセスするためのpythonモジュール) がインストールされている事
-- cx_Oracle の動作には、Oracle から無償配布されているインスタントクライアントのインストールが必要。作者は instant-client-basic と instant-client-devel を入れている。
--- http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxsoft.html
- スクリプトを動作させるホストから CE6 のデータベースサーバへ Oracle の問合せができるようになっていること
- Oracle に問い合わせるための情報(SID、接続ユーザ名、パスワード) がわかっている事

が必要である。

3 の機能が動作する条件が揃っていなくても、1,2 だけでスクリプトは動作する。

** 動作確認環境 [#l710d197]
作者が動作を確認した環境は以下。

- CE6 サーバ:BbLS CE 8.0.1, 8.0.2, 8.0.3 / Linux + Oracle 版
- スクリプトの動作:CentOS 5.3+Python 2.4.3, MacOS X 10.5 + Python 2.5

** 利用方法 [#hceaf015]

*** コマンドラインとして使う [#xff484e9]

シェルコマンドとして下記のように実行する。

 ./fixzip.cgi inputzipfile outputzipfie

CE6 からダウンロードしたファイルを inputzipfile に指定し、outputzipfile に変換後のzipファイル名を書く。

*** CGI スクリプトとして使う [#y8f37965]

+ CGI が利用できるディレクトリにスクリプトを保存。
+ スクリプトの最初の部分に tmpdir があるので、ここに CGI 実行者権限で書込みができるか確認をする。
+ Oracle を参照する場合には ora_connect_str に以下を書く。
-- 接続ユーザ名
-- パスワード
-- SID
-- 接続ポート
-- サーバ名

ブラウザで、設置した CGI にアクセスすると以下のような画面になるので、CE6 からダウンロードしたファイルを指定し、「変換」をクリック。

http://sumi.riise.hiroshima-u.ac.jp/skitch/fixzip-20090824-044229.png

上記は cx_Oracle がインストールされていない場合。Oracle データベースを参照して、IDの追加ができる場合には以下のような画面となる。

http://sumi.riise.hiroshima-u.ac.jp/skitch/fixzip-20090824-044141.png

変換と変換したZIPファイルのダウンロードが始まる。変換後のファイル名は「年月日-時刻-????.zip」という形式になる。

** このスクリプトの利用について [#w2268ef8]
このスクリプトは http://www.els.hiroshima-u.ac.jp/s/fixzip/ で使っているものと同一です。

ご自由にご利用下さい。改変しての利用ももちろん可です。

ただし、このスクリプト、またはそれを改変したものの利用により、いかなる損害が発生しても作者(隅谷)は責任をとれません。

** バージョン履歴 [#jb57bc1f]
- 2009-07-01 v1.0 初期バージョン

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS