#author("2022-03-21T20:43:00+09:00;2022-03-19T00:37:02+09:00","default:umorigu","umorigu")
#author("2022-03-21T20:44:22+09:00","default:umorigu","umorigu")
* ページ名長さ制限 [#v0a2b7c6]

(旧タイトル: WikiName/BracketName の長さ検査他)

-ページ: [[BugTrack]]
-投稿者: [[seagull]]
-優先順位: 普通
-状態: 完了
-カテゴリー: その他
-投稿日: 2002-07-12 (金) 23:56:28
-バージョン: 1.3.2
-リリース予定バージョン: 1.5.4

**メッセージ [#nd3cb23c]
無効な名前のページを要求すると、「有効なWikiNameではありません」というページが出るまではいいが、そこで「リロード」をクリックするとブラケットが増殖する。これだけならまだ実害になる事は無いのだが、
さらに、そのうち stat できない(ファイル名が長すぎる)というWarnが出る。

↓こんなん~
%%sample%%&br; (2007-10-03 (水) 15:17:06 現在デッドリンク。ちなみに、[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[kkk kkk]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]])

**ファイル名の最大長 [#va68e09a]
-多くのUNIX(?) : 255byte
-Windows 95/98/Me(/NT?) : 255byte(SJIS)
-Windows 2000/XP : 255byte(UTF-8) ((実際にやったら254だったんですが・・・ -- [[teanan]]))
-MacOS8.1以前のHFS : 31bytye
-MacOS8.1以後HFS+ : 255byes
-FreeBSD UFS/UFS2 : 255byte

**文字の長さ関連 [#l017ae9c]
-[[BugTrack/437]] 注釈に長い文章を入れるとエラーが発生
-[[BugTrack2/202]] Apache/Win+PHP5の環境で、長い文字列を太字('')にした場合Apacheがリセットされる?
-[[BugTrack2/237]] 注釈の文字が長いとApacheが停止する
-[[BugTrack2/238]] ページの文字数が多いと、キャッシュ書き込みエラーとなる
-[[BugTrack2/318]] フィードのURLが長いとshowrssプラグインのキャッシュが機能しない
-[[BugTrack2/358]] XAMPPの特定バージョンで「テキスト整形のルール」 FormattingRules を表示できない
-[[official:WebTrack/17]] 書き込み量が多いページ編集を行うと Fatal error が発生する

**仕様案 (umorigu) [#ec385726]

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文字まで)
-- ハードリミット: すでに作成したページへの制限


----
**コメント [#va7c844f]
-BugTrackの一覧で[[BugTrack/84]]のタイトルだけが<pre>で囲まれているのはなぜなんだろう? -- [[reimy]] SIZE(1):2002-07-13 (土) 00:26:57
--タイトルと行頭アスタリスクの間に空白が入っているのが原因かと、、 -- [[seagull]] SIZE(1):2002-07-13 (土) 00:57:49
-ファイル名の長さ制限って何文字でしょうね?プラットホームで違うし、かといってそれを取得する方法はないのか・・・pukiwiki.ini.phpで指定しますか。 -- [[ゆう]] SIZE(10){2002-07-18 (木) 23:23:01}
-多くのUNIXやWindowsは255byte、MacOS8.1以前のHFSが31bytyes、以後のHFS+が255byesですね。 -- [[ゆう]] SIZE(10){2002-07-18 (木) 23:29:10}
-120文字+.txtとして見ますか?デフォルトは。 -- [[ゆう]] SIZE(10){2002-07-18 (木) 23:31:53}
-このバグと関連して、空のページ([[]])が作れてしまうようです。 -- [[reimy]] SIZE(10){2002-08-08 (木) 19:17:01}
-ページを階層化していると、ファイル名が長くなってひっかかるみたい(warning)。ページ作成時にファイル名の長さチェックする必要がありそう。UTF-8化すると日本語ページのファイル名が長くなるので、要注意。 -- [[reimy]] SIZE(10){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]] &new{2003-09-21 (日) 03:36:42};
--また、ページ本文で、この「ああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ」をBracketで囲んでBracketNameにすると、キャッシュの書き込みでRuntime Errorが出ます。ページそのものは正常に保存されますが。-- [[reimy]] &new{2003-09-21 (日) 03:39:22};
-ちょっと私のところで問題がおきましたので発掘 (^^;((ファイル名が長すぎるとRuntime Errorが出る。)) ファイルを添付するとattachディレクトリに「ページ名_ファイル名」のファイルを作ろうとしますので、当然ながらかなりきついです。ちなみにFreeBSDのUFS/UFS2のファイル名は最大255byteのようです。 -- [[teanan]] &new{2004-10-26 (火) 09:57:41};
- [[BugTrack2/238]] --  &new{2007-05-22 (火) 22:20:34};
- 「ファイル名の最大長」の呪縛から開放をぜひ[[ロードマップ]]に。 --  &new{2007-07-30 (月) 08:46:24};
-- いろんな切り口があるので、そのイメージされた状態をちょっと書いておいて下さい。 -- [[henoheno]] &new{2007-07-30 (月) 21:59:08};
-- スレ主ではありませんがコメント。ページ名を直接使ってしまうと、どうしても制限にかかってしまいそうですね。読み替えテーブルを用意して、実ファイル名をページ名から切り離す必要があると思います。実ファイル名は単純に通し番号、もしくはmd5(ページ名)等で。もちろん、プラグイン内でファイル名を直接見ているところがありますので、これらを変更する必要がありますが… -- [[teanan]] &new{2007-07-31 (火) 02:47:23};
--- [[teanan]]さんが仰っている内容が現実路線だと思います。変換や逆引き((MD5等のハッシュ系は困難ですね。。。))、一覧表示時の性能についてのバランスが難しいと思いますが・・・。安易にDBMSに・・・とは行きたくないですねぇ。。 --  &new{2007-07-31 (火) 06:54:23};
-- 結局何を「呪縛」とされていて、何を「開放」とされていたのかが不明です。なるべく最初から具体的となるコメントを心がけて下さい(補足の後付でも問題ありません)。 -- [[henoheno]] &new{2007-08-05 (日) 20:59:07};
-- 「RDBMSにすれば永遠のページ名の長さを手に入れられる」という事はありません (^^; 仮に「分割した文字列を後で連結する手法で表現できる」としましょう。しかしその手法はRDBMSでなくとも使えるので、RDBMSでなければいけない理由にはならないのです。 -- [[henoheno]] &new{2007-08-05 (日) 21:00:32};
-- また無限長を許してしまうというのも、軽快さを失う原因になります。100MBの長さのページ名とか見たくないですよね。 -- [[henoheno]] &new{2007-08-05 (日) 21:04:58};
-- ということで、最大長の制限値を設ける、というのはどんなシステムであっても避けられない事だと思いますよ。 -- [[henoheno]] &new{2007-08-05 (日) 21:09:01};
- ページ名長さ制限を実装しました (ページ名ソフトリミット: 115 bytes (UTF-8日本語だと38文字まで)) commit:415e4b0e83 -- [[umorigu]] &new{2022-03-14 (月) 02:51:10};
-- BlacketName でのファイル名が ソフトリミット115 bytes より大きい場合、 .ref ファイルを作成しないようにしました。 (※ BlacketName を書くと xxx というページが無くても xxx.ref が作られます。) -- [[umorigu]] &new{2022-03-19 (土) 00:37:02};
- 添付ファイル名の長さ制限は[[BugTrack/2563]]で対応します -- [[umorigu]] &new{2022-03-21 (月) 20:44:22};

#comment

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 8.2.12. HTML convert time: 0.028 sec.

SourceForge