ОС 8.2-STABLE FreeBSD + ZFSv28перенесли с виндового ФТП пару десятоков терабайт файла (фильмы, игры итп), файло годами в ручную индексировалось в фильмотеке (БД mysql+вебморда юзера\админа). винда не грешила на регистр в УРЛ и регистр на диске, а вот фре не понравилось то что в УРЛ отличен регистр от того что реально на диске и получаем ошибку - файл не найден, или путь к файлу.
пример:
скажем на диске есть файл /ftp/films/terminator.avi
через фтп клиента нужно зайти по ссылке ftp://ftp/Films/terminator.avi
из-за отличия в регистре films и Films урл не валидная.вопрос, может ли proftpd
proftpd -v
ProFTPD Version 1.3.3eобойти этот неприятный момент стандартными средствами?
ссылок и таблиц настолько много что писать упдейты в БД практически не реально.
>[оверквотинг удален]
> пример:
> скажем на диске есть файл /ftp/films/terminator.avi
> через фтп клиента нужно зайти по ссылке ftp://ftp/Films/terminator.avi
> из-за отличия в регистре films и Films урл не валидная.
> вопрос, может ли proftpd
> proftpd -v
> ProFTPD Version 1.3.3e
> обойти этот неприятный момент стандартными средствами?
> ссылок и таблиц настолько много что писать упдейты в БД практически не
> реально.http://www.proftpd.org/docs/contrib/mod_rewrite.html
http://forums.proftpd.org/smf/index.php?topic=5980.0
>[оверквотинг удален]
>> через фтп клиента нужно зайти по ссылке ftp://ftp/Films/terminator.avi
>> из-за отличия в регистре films и Films урл не валидная.
>> вопрос, может ли proftpd
>> proftpd -v
>> ProFTPD Version 1.3.3e
>> обойти этот неприятный момент стандартными средствами?
>> ссылок и таблиц настолько много что писать упдейты в БД практически не
>> реально.
> http://www.proftpd.org/docs/contrib/mod_rewrite.html
> http://forums.proftpd.org/smf/index.php?topic=5980.0To 2ihi: Что, не осилили ссылок? Мне просто любопытно, я типа зря ответил на вопрос или нет.
>[оверквотинг удален]
>>> вопрос, может ли proftpd
>>> proftpd -v
>>> ProFTPD Version 1.3.3e
>>> обойти этот неприятный момент стандартными средствами?
>>> ссылок и таблиц настолько много что писать упдейты в БД практически не
>>> реально.
>> http://www.proftpd.org/docs/contrib/mod_rewrite.html
>> http://forums.proftpd.org/smf/index.php?topic=5980.0
> To 2ihi: Что, не осилили ссылок? Мне просто любопытно, я типа зря
> ответил на вопрос или нет.да я набегом занимаюсь, реврайт поставил, пока застопорился на месте к какой команде ФТП прикрутить метод... нужно по фтп мануал в спокойной обстановке перекурить.. В лоб не получилось :)
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteLog /var/log/ftp_rewrite.log
RewriteMap lowercase int:tolower
RewriteCondition %m CD
RewriteRule ^(.*) ${lowercase:$1}
</IfModule>а с ZFS все быстро получилось - ввел, получил болт, заглянул в ман и понял что не выйдет :)
> да я набегом занимаюсь, реврайт поставил, пока застопорился на месте к какой
> команде ФТП прикрутить метод...Возможно, надо прикрутить обработку метода RETR (в дополнение).
> нужно по фтп мануал в спокойной обстановке
> перекурить.. В лоб не получилось :)Ага, я в деталях тоже не знаю нюансов...
>> да я набегом занимаюсь, реврайт поставил, пока застопорился на месте к какой
>> команде ФТП прикрутить метод...
> Возможно, надо прикрутить обработку метода RETR (в дополнение).пробовал - не выходит, тут не RETR а на этапе просмотра нужно думать..
>> нужно по фтп мануал в спокойной обстановке
>> перекурить.. В лоб не получилось :)
> Ага, я в деталях тоже не знаю нюансов...склоняюсь к тому что не выйдет затея... на диске требуется соблюдение регистра, а то что мы в выводе(в воде) подсунули измененный регистр на диск это влияния не окажет. Записать на лету файл с изменением в названии - нет проблем, скачать с изменением так же, а вот обратиться к диску с видоизмененной ссылкой не получится. Нужно на диске приводить все к нужному регистру и использовать реврайт имхо.
>[оверквотинг удален]
> думать..
>>> нужно по фтп мануал в спокойной обстановке
>>> перекурить.. В лоб не получилось :)
>> Ага, я в деталях тоже не знаю нюансов...
> склоняюсь к тому что не выйдет затея... на диске требуется соблюдение регистра,
> а то что мы в выводе(в выводе) подсунули измененный регистр на
> диск это влияния не окажет. Записать на лету файл с изменением
> в названии - нет проблем, скачать с изменением так же, а
> вот обратиться к диску с видоизмененной ссылкой не получится. Нужно на
> диске приводить все к нужному регистру и использовать реврайт имхо.Я вообще не вижу проблемы скриптами прогнать как lowercase в БД так и lowercase в ФС.
>>[оверквотинг удален]
>> думать..
>>>> нужно по фтп мануал в спокойной обстановке
>>>> перекурить.. В лоб не получилось :)
>>> Ага, я в деталях тоже не знаю нюансов...
>> склоняюсь к тому что не выйдет затея... на диске требуется соблюдение регистра,
>> а то что мы в выводе(в выводе) подсунули измененный регистр на
>> диск это влияния не окажет.Что-то я перестал где-то понимать.
Вывод листинга модифицировать не надо, тогда клиент будет запрашивать файлы в регистре, соответствующем имени файла на диске, проблемы собственно тогда и быть-то не может.
Если у вас кривые данные в БД, то их надо бы по-хорошему исправить.
Я не понимаю, как оно тогда работает, если в БД регистр имен не совпадает с реальным именем в файловой системе, как тогда движок файлы эти находит ?>ссылок и таблиц настолько много что писать упдейты в БД практически не реально.
Я это как-то не особо могу понять, не может быть такого, т.е. не должно.
Если структура пути собирается по нескольким таблицам, то пишется скрипт и скриптом всё правится.---
Или, если сильно хочется поизвращаться, то можно взять скрипт реврайта из оф документации профтпд и модифицировать его для своих нужд, реализовав скриптом сопоставление имени файла, полученного из команды RETR в имя файла лежащего на диске.
Но для этого у вас должны быть в БД имена файлов, соответствующие именам файлов в ФС, а если это так, то нет проблем сформировать правильную ссылку. Собственн говоря сопоставление через скрипт тут может быть только для поддержания работоспособности по кривым ссылкам на время процедуры переезда.
> Что-то я перестал где-то понимать.
> Вывод листинга модифицировать не надо, тогда клиент будет запрашивать файлы в регистре,
> соответствующем имени файла на диске, проблемы собственно тогда и быть-то не
> может.в том то и дело что в БД есть разные вариации ссылок, одна может быть на нижний регистр, другая на верхний в той же папке которая может быть и ВоТвТаКоМ виде...
> Если у вас кривые данные в БД, то их надо бы по-хорошему
> исправить.
> Я не понимаю, как оно тогда работает, если в БД регистр имен
> не совпадает с реальным именем в файловой системе, как тогда движок
> файлы эти находит ?Данные заносились руками, т.е. каждому файлу прцеплялся ярлык в виде картинки, давалась анотация, всякий сопутствующий хлам итд.. ссылку зачастую брали через браузер, или через експлорер, который может показывать папки с заглавной буквы не смотря на то что на диске оно с маленькой.. короче говоря проблемы не знали пока всем управляла винда, а постепенно с ростом скоростей файловых систем на фре перешли на ЗФС со всеми вытекающими, и заметили проблему.
>>ссылок и таблиц настолько много что писать упдейты в БД практически не реально.
> Я это как-то не особо могу понять, не может быть такого, т.е.
> не должно.
> Если структура пути собирается по нескольким таблицам, то пишется скрипт и скриптом
> всё правится.Там на одну категорию может быть по 5 таблиц и все это перемешано в кучу.. если бы заполнением занимался человек понимающий структуру БД и чем все это светит то была б унификация, если бы проблема была обозначена на начальных этапах, то естественно её бы решили программным методом или любым другим, а так как все это стояло, работало и не жужжало до определенного момента (лет наверное 8), то через 8 лет мы туда сунулись и офигели..
> ---
> Или, если сильно хочется поизвращаться, то можно взять скрипт реврайта из оф
> документации профтпд и модифицировать его для своих нужд, реализовав скриптом сопоставление
> имени файла, полученного из команды RETR в имя файла лежащего на
> диске.
> Но для этого у вас должны быть в БД имена файлов, соответствующие
> именам файлов в ФС, а если это так, то нет проблем
> сформировать правильную ссылку. Собственн говоря сопоставление через скрипт тут может
> быть только для поддержания работоспособности по кривым ссылкам на время процедуры
> переезда.что-то мне хочется поправить сам профтпд... думаю в выходные дома займусь.. еще конечно реврайт покручу..
> Данные заносились руками, т.е. каждому файлу прцеплялся ярлык в виде картинки, давалась
> анотация, всякий сопутствующий хлам итд.. ссылку зачастую брали через браузер, или
> через експлорер, который может показывать папки с заглавной буквы не смотря
> на то что на диске оно с маленькой.. короче говоря проблемы
> не знали пока всем управляла винда, а постепенно с ростом скоростей
> файловых систем на фре перешли на ЗФС со всеми вытекающими, и
> заметили проблему.Написать скрипт который бы прогнал все нужные поля в таблицах и все файлы в нужных дирах к нижнему регистру - полчаса работы. выполняться это будет тоже не долго, даже на паре миллионов файлов. имхо, проблема высосана из пальца.
>[оверквотинг удален]
>>>> перекурить.. В лоб не получилось :)
>>> Ага, я в деталях тоже не знаю нюансов...
>> склоняюсь к тому что не выйдет затея... на диске требуется соблюдение регистра,
>> а то что мы в выводе(в выводе) подсунули измененный регистр на
>> диск это влияния не окажет. Записать на лету файл с изменением
>> в названии - нет проблем, скачать с изменением так же, а
>> вот обратиться к диску с видоизмененной ссылкой не получится. Нужно на
>> диске приводить все к нужному регистру и использовать реврайт имхо.
> Я вообще не вижу проблемы скриптами прогнать как lowercase в БД так
> и lowercase в ФС.боюсь нарушится чтоньть... прогнать в принципе можно, но так столько всего что прогонять наверное дня 2 будет.. больше 100ТБ причем файлы есть и по килобайту..
zfs set casesensitivity=insensitive pool/home
> zfs set casesensitivity=insensitive pool/homeftp# zfs set casesensitivity=insensitive POOLS/test
cannot set property for 'TEMPZ/ftp3': 'casesensitivity' is readonly:( рою на предмет смены параметра с атрибутом ro
upd: взял с документашки по ZFS на сайте оракла
Примечание –
Свойства casesensitivity, nbmand, normalization, sharemgrutf8only и vscan имеют фиксированные значения и не поддерживаются в выпуске Solaris 10.
видимо не получится..