*[PLUGIN] dumpプラグイン (バックアップ&リストア機能) の作成 [#ee8ddb55] -ページ: BugTrack -投稿者: [[henoheno]] -優先順位: タイムリー -状態: 着手 -カテゴリー: 本体新機能 -投稿日: 2004-09-26 (日) 19:44:01 -バージョン: -------------------------- #contents -------------------------- **メッセージ [#b646c117] [[teanan]]さん作成のバックアップ/リストアプラグイン([[org:自作プラグイン/tarfile.inc.php]])を PukiWiki に追加します。このプラグインはネットワーク越しにPukiWikiのバックアップ(*.tar/*.tar.gz)とリストアを可能にします。GPLとして配布はOKとの事です。ありがとうございます。これで助かる人は結構多いでしょう。 - 特徴: -- phpファイル単独で動作する (tarやgzipやzipのようなシステムコマンドを呼んでいないし、その設定も不要) -- リストアまで実現している -- エンコードされている生のページ名を、ディレクトリ階層つきのファイル名にデコードする機能(オプション)がある --------------------------------------- ** ちょっと確認: tar の構造 [#vae7feed] - tar の構造 -- http://www.redout.net/data/tar.html --------------------------------------- ** ちょっと確認: Zlibモジュール [#v5b3bc70] - PHP マニュアル: zlib圧縮関数 -- http://jp2.php.net/manual/ja/ref.zlib.php -- "PHP 4.3.0 以降、zlib モジュールは php バイナリにビルトイン" - backupプラグインは以下の様にして zlib モジュールおよび関連関数の有無を判定している if (function_exists('gzfile')) --------------------------------------- ** ちょっと確認: デコード機能: ファイルシステムに使うべきでない文字 [#vcc87a8a] - Windowsなら「\/:*?"<>|」が危ない文字 --------------------------------------- ** これまでの経過 [#v8828a90] - [[開発日記/2004-09-23]] [[teanan]]さん作成のバックアップ/リストアプラグイン([[org:自作プラグイン/tarfile.inc.php]]) をCVSに追加 - [[開発日記/2004-09-25]] -- PukiWikiのデータが今後もファイルシステムベースだと仮定する必要はないので、名称をdumpとさせていただきました。 -- ライブラリ部分とそうでない部分を極力分離 (まだ一部混ざっている) -- アップロード時はファイルの拡張子を自動で識別する (チェックボックスも除去) -- アップロードしたファイルのサイズ上限をチェックする (実は未チェックだった (^^; ) -- パスワードの認証にpkwk_login() を使用する -- その他、冗長な部分の削除、コメント追加&英語化、コメントの修正、$varsの使用など - [[9/26までのコメントは別ページに移動>./過去のコメント#f29ea054]] - [[開発日記/2004-09-26]] [#vf73bd68] -- [[cvs:plugin/dump.inc.php]] (v1.4:1.23) -- この日の(r1.23までの)修正の大雑把なまとめ: --- r1.4のバグ修正 --- リストア時: ページ書き込みに flock() を用いる --- gzopen() で取得したポインタには (fwrite()ではなく) gzwrite() で書きこむ --- ライブラリとのインターフェースに外部の定数を用いない (隠蔽) --- 関数/クラスメンバの引数名の整理 --- E_ALL でチェックした結果を反映 --- スタイルの修正 --- クラスメンバの定義順の整理 (使用する順に) --- クラス内でしか用いない(プライベートな)クラスメンバ名の先頭に '_' を付加 -- などなど -------------------------------------------- *** コメント [#n8b5c0f0] -Rev1.23 でtarが展開できました。素敵~ :D -- [[にぶんのに]] &new{2004-09-27 (月) 02:36:16}; --で、懸案事項などを追加です。 --buckupの*txt云々は単にlib/backup.phpにそれらしき(=zlibがdisableだと圧縮しない)コードが書いてあるだけで動作確認を取ったわけではありません。PHP 4.3.0 以降zlibがビルトインされたようですが、[[org:PukiWiki/インストール]]を見ると現状はPHP4.1.0以降なら多分オッケー、と言っているので、一応想定してあげる必要もあるのかな~と。 --問題提起なのですが、ページ名の変換における、危ない文字はどのOSに対してでしょうか?~ デコードは凄~く嬉しい機能なのですが、危ない文字((Unicodeのファイル名を許すかどうかもかな?))はOSによって変わってくるので、マジメに考え出すと対応方法が悩ましい所だと思います。~ 現状はMacOS対応のロジック?でしょうか。もしWindowsなら「\/:*?"<>|」が危ない文字です。%%あと予約されたDOSデバイス名((con,aux,nul,prn,lpt1~9,com1~9,CLOCK$,XMSXXXX0…))というのもありますが、関係あるかな?%%関係なしでした。 Unixでも類似の制約があるはずですが、私は詳細を知らないです。 --機能的な問題があるわけではなく、素朴な疑問なのですが、plugin_dump_disp_form()でpluginでなくcmdでdumpを呼び出しているのは何か理由があるのでしょうか。何か使い分けの基準があるとか? -わたしも、試してみました。いいですね (^^) ということで、わたしもコメント -- [[みこ]] &new{2004-09-27 (月) 23:41:55}; --デコードは問題が多そうなのでいらないから、その代わりといっては何ですけど一覧リストのテキストがほしいです。(よくあるエディタのF10などで開ければ尚 Good (^-^ ) 例:xxx.tar.gz[/ls-lR.txt] ./wiki/: ./wiki/50756B6957696B69.txt(1): PukiWiki ./wiki/53616E64426F78.txt(1): SandBox --(↑とってもエディタ使いな発想ですけどね (..;) --というわけで、こんなのどうでしょ? [[teanan_自作プラグイン/pagefile.inc.php>http://teanan.homeip.net/pukiwiki/index.php?%BC%AB%BA%EE%A5%D7%A5%E9%A5%B0%A5%A4%A5%F3%2Fpagefile.inc.php]]~ dumpとは関係ないですね、すみません XD -- [[teanan]] &new{2004-09-28 (火) 00:51:01}; ---うーん(^^; dumpのパッケージ(.tarもしくは.tar.gz)の中にほしい=展開したときにエディタで探しやすくの意味なのでちょっと違うかな (^^; -- [[みこ]] &new{2004-09-28 (火) 01:04:03}; ---なるほど、失礼しました XD -- [[teanan]] &new{2004-09-28 (火) 01:12:55}; -ついでに、ここまで行ったならばいよいよリリースファイルにも wiki ファイルも別tarでもいいかも・・・(そうすれば、プログラム側のほうはtarを展開するだけでアップグレードが可能に?ちょっと無理かな(^^; ) -- [[みこ]] &new{2004-09-29 (水) 00:37:46}; #comment