添付ファイルの内部ファイル名に拡張子をつける

  • ページ: BugTrack
  • 投稿者: umorigu
  • 優先順位: 低
  • 状態: 提案
  • カテゴリー: その他
  • 投稿日: 2017-10-16 (月) 02:31:00
  • バージョン: 1.5.1

メッセージ

添付ファイルは内部的に attach/ ディレクトリに保存されるが、拡張子が無いため、添付ファイルのみを対象にした一括処理が行いにくい。

添付ファイルの実体のみを扱いやすくするため、実体ファイルに拡張子をつける。

1.5.1現行仕様

  • 添付ファイルと関連ファイルは attach/ ディレクトリに保存
  • 内部ファイル名(inernal_filename): ${encode(page_name)}_${encode(file_name)}
  • ファイルのアップロード時刻は internal_filename の更新時刻(他の場所にはない)
  • カウンタファイル名: ${internal_filaname}.log
  • ファイルが上書きアップロードされたとき: ${internal_filename}.1 にリネーム
    • カウンタファイル名は: ${internal_fillename}.1.log となる
    • ファイルが上書きアップロードされたとき、古いものから ${inernal_filename}.1, .2, .3, ... となる
  • 最新のファイルは常に ${internal_filname} となっている。同名ファイルの中で最新のファイルが削除されたときは、 ${internal_filename} が無くなる

関連: BugTrack/2376


  • こんにちは。この件は他でも話題があったかもしれませんが、こちら(dev)には見つけられませんでした。添付ファイルの文字数が短くなる、あるいは文字を失うという副作用がありますが、変更するべき内容だと思います。「添付ファイルの実体」だけが、他のデザインから外れており、管理運用を困難にしています。拡張子としては *.bin を提案します。 -- henoheno 2017-10-16 (月) 23:03:32
  • ありがとうございます。私もどこかで読んだ気がするのですが、見つけられませんでした。binの拡張子はCDイメージのような印象があるので、無味乾燥な*.datにしようかと考えていました。 -- umorigu 2017-10-22 (日) 20:33:02
  • binとdatには違いがあります。binはたいていのシステムにおいて (MIME type が "application/octet-stream" であり) 任意のバイナリデータとして事前に定義されているので、Webブラウザなどがそれを直接表示したり、実行しようとしません。 developer.mozilla.org/ja/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types -- henoheno 2017-10-29 (日) 23:26:24
    • 任意のバイナリデータとして定義されているのは MIME-Typeのapplication/octet-stream であって、拡張子binではないと思います。 確かにご提示のMDNのページにはapplication/octet-streamに対して、「一般的な拡張子」としてbinが示されていて、一見そのようにも読めますが、これは他のtypeと合わせるために便宜上書かれているものにすぎないと思います。この元になった(先のページから参照されている) www.iana.org/assignments/media-types/media-types.xhtml の application/octet-stream に拡張子についての記述は無いようです -- umorigu 2017-10-30 (月) 02:05:38
    • 書き直しますと: 拡張子 "bin" はたいていのシステムにおいて (実装例としては MIME type "application/octet-stream" が割り当てられており、"application/octet-stream" は任意のバイナリデータとして事前に定義されているので) Webブラウザがそれを直接表示したり、実行しようとしませんから、仮にそれらのファイルへの直接アクセスが発生する事があったとしても、Webブラウザの仕様や脆弱性にかかわるリスクを回避できることが期待できます。拡張子 "dat" はそのような事がありません。 -- henoheno 2017-11-03 (金) 23:33:08
    • RFC2046 の "Octet-Stream Subtype" に記述がありますが、octet-stream はそもそも バイナリデータのためのサブタイプです。それゆえに 拡張子 "bin" の MIME type が "application/octet-stream" として定義されているのでしょうけれども、以下の様な状況です。 -- henoheno 2017-11-04 (土) 00:16:18
      最近のLinux (CentOS 7 や Debian 8)/etc/mime.types に
      "bin" について MIME type "application/octet-stream" が定義されています
      CentOS 7 の httpd/etc/mime.types を参照します
      CentOS 7 の nginx動作を調べていませんが、独自の設定ファイル /etc/nginx/mime.types を持っており、
      "bin" について MIME type "application/octet-stream" が定義されています
      Microsoft IIS動作を調べていませんが、少なくとも4.0と5.0について
      "bin" について MIME type "application/octet-stream" が定義されて いることが technet.microsoft.com/ja-jp/library/bb742440.aspx から確認できます


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-11-04 (土) 00:35:15
Site admin: PukiWiki Development Team

PukiWiki 1.5.1+ © 2001-2016 PukiWiki Development Team. Powered by PHP 5.6.33-0+deb8u1. HTML convert time: 0.243 sec.

OSDN