ページ名長さ制限†
(旧タイトル: WikiName/BracketName の長さ検査他)
- ページ: BugTrack
- 投稿者: seagull
- 優先順位: 普通
- 状態: 完了
- カテゴリー: その他
- 投稿日: 2002-07-12 (金) 23:56:28
- バージョン: 1.3.2
- リリース予定バージョン: 1.5.4
メッセージ†
無効な名前のページを要求すると、「有効なWikiNameではありません」というページが出るまではいいが、そこで「リロード」をクリックするとブラケットが増殖する。これだけならまだ実害になる事は無いのだが、
さらに、そのうち stat できない(ファイル名が長すぎる)というWarnが出る。
↓こんなん
sample
(2007-10-03 (水) 15:17:06 現在デッドリンク。ちなみに、[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[kkk kkk]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]])
ファイル名の最大長†
- 多くのUNIX(?) : 255byte
- Windows 95/98/Me(/NT?) : 255byte(SJIS)
- Windows 2000/XP : 255byte(UTF-8) *1
- MacOS8.1以前のHFS : 31bytye
- MacOS8.1以後HFS+ : 255byes
- FreeBSD UFS/UFS2 : 255byte
文字の長さ関連†
仕様案 (umorigu)†
umorigu (2022/01/29-)
- 単独1ファイル (ディレクトリ部分を除いたファイル名) が 255 文字をハードリミット (絶対に超えられない制約) とする
- 目安として拡張子を除いたファイル名表現部分を 230文字 (ファイル名encodeしたもの)、つまりファイル名 115bytes を制限値とする (ASCII文字なら115文字, 日本語文字なら38文字
- ただし、既存サイトでは作成済みページもあるため、230文字を超えていても表示は更新はできるようにする
- 添付ファイルは encode(ページ名) + "_" + encoded(ファイル名) が 240 bytes を超えないようにする
ページ名長さ制限:
- ページ名ソフトリミット: 115 bytes (UTF-8日本語だと38文字まで)
- refファイルはソフトリミットまでのものしか作成しない
- ページ名ハードリミット: 125 bytes (UTF-8日本語だと41文字まで)
コメント†
- BugTrackの一覧でBugTrack/84のタイトルだけが<pre>で囲まれているのはなぜなんだろう? -- reimy 2002-07-13 (土) 00:26:57
- タイトルと行頭アスタリスクの間に空白が入っているのが原因かと、、 -- seagull 2002-07-13 (土) 00:57:49
- ファイル名の長さ制限って何文字でしょうね?プラットホームで違うし、かといってそれを取得する方法はないのか・・・pukiwiki.ini.phpで指定しますか。 -- ゆう 2002-07-18 (木) 23:23:01
- 多くのUNIXやWindowsは255byte、MacOS8.1以前のHFSが31bytyes、以後のHFS+が255byesですね。 -- ゆう 2002-07-18 (木) 23:29:10
- 120文字+.txtとして見ますか?デフォルトは。 -- ゆう 2002-07-18 (木) 23:31:53
- このバグと関連して、空のページ([[]])が作れてしまうようです。 -- reimy 2002-08-08 (木) 19:17:01
- ページを階層化していると、ファイル名が長くなってひっかかるみたい(warning)。ページ作成時にファイル名の長さチェックする必要がありそう。UTF-8化すると日本語ページのファイル名が長くなるので、要注意。 -- reimy 2003-03-06 (木) 18:18:46
Runtime error
Error message : cannot write page file or diff file or otherああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ
maybe permission is not writable or filename is too long
- これはまだ直ってませんね。新規ページ作成で「ああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ」というページを作成して、保存しようとするとRuntime Errorが出ますね。実害はないですが。 -- reimy
- また、ページ本文で、この「ああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ」をBracketで囲んでBracketNameにすると、キャッシュの書き込みでRuntime Errorが出ます。ページそのものは正常に保存されますが。-- reimy
- ちょっと私のところで問題がおきましたので発掘 (^^;*2 ファイルを添付するとattachディレクトリに「ページ名_ファイル名」のファイルを作ろうとしますので、当然ながらかなりきついです。ちなみにFreeBSDのUFS/UFS2のファイル名は最大255byteのようです。 -- teanan
- BugTrack2/238 --
- 「ファイル名の最大長」の呪縛から開放をぜひロードマップに。 --
- いろんな切り口があるので、そのイメージされた状態をちょっと書いておいて下さい。 -- henoheno
- スレ主ではありませんがコメント。ページ名を直接使ってしまうと、どうしても制限にかかってしまいそうですね。読み替えテーブルを用意して、実ファイル名をページ名から切り離す必要があると思います。実ファイル名は単純に通し番号、もしくはmd5(ページ名)等で。もちろん、プラグイン内でファイル名を直接見ているところがありますので、これらを変更する必要がありますが… -- teanan
- teananさんが仰っている内容が現実路線だと思います。変換や逆引き*3、一覧表示時の性能についてのバランスが難しいと思いますが・・・。安易にDBMSに・・・とは行きたくないですねぇ。。 --
- 結局何を「呪縛」とされていて、何を「開放」とされていたのかが不明です。なるべく最初から具体的となるコメントを心がけて下さい(補足の後付でも問題ありません)。 -- henoheno
- 「RDBMSにすれば永遠のページ名の長さを手に入れられる」という事はありません (^^; 仮に「分割した文字列を後で連結する手法で表現できる」としましょう。しかしその手法はRDBMSでなくとも使えるので、RDBMSでなければいけない理由にはならないのです。 -- henoheno
- また無限長を許してしまうというのも、軽快さを失う原因になります。100MBの長さのページ名とか見たくないですよね。 -- henoheno
- ということで、最大長の制限値を設ける、というのはどんなシステムであっても避けられない事だと思いますよ。 -- henoheno
- ページ名長さ制限を実装しました (ページ名ソフトリミット: 115 bytes (UTF-8日本語だと38文字まで)) commit:415e4b0e83 -- umorigu
- BlacketName でのファイル名が ソフトリミット115 bytes より大きい場合、 .ref ファイルを作成しないようにしました。 (※ BlacketName を書くと xxx というページが無くても xxx.ref が作られます。) -- umorigu
- 添付ファイル名の長さ制限はBugTrack/2563で対応します -- umorigu