The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"proftpd + регистр в ссылках"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (FTP / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"proftpd + регистр в ссылках"  +/
Сообщение от 2ihi email(ok) on 19-Мрт-12, 13:48 
ОС 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

обойти этот неприятный момент стандартными средствами?

ссылок и таблиц настолько много что писать упдейты в БД практически не реально.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "proftpd + регистр в ссылках"  +/
Сообщение от PavelR (ok) on 19-Мрт-12, 14:06 
>[оверквотинг удален]
> пример:
> скажем на диске есть файл /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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "proftpd + регистр в ссылках"  +/
Сообщение от PavelR (ok) on 20-Мрт-12, 09:37 
>[оверквотинг удален]
>> через фтп клиента нужно зайти по ссылке 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

To 2ihi: Что, не осилили ссылок? Мне просто любопытно, я типа зря ответил на вопрос или нет.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

5. "proftpd + регистр в ссылках"  +/
Сообщение от 2ihi email(ok) on 20-Мрт-12, 12:02 
>[оверквотинг удален]
>>> вопрос, может ли 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 все быстро получилось - ввел, получил болт, заглянул в ман и понял что не выйдет :)

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "proftpd + регистр в ссылках"  +/
Сообщение от PavelR (ok) on 20-Мрт-12, 12:25 

> да я набегом занимаюсь, реврайт поставил, пока застопорился на месте к какой
> команде ФТП прикрутить метод...

Возможно, надо прикрутить обработку метода RETR (в дополнение).

> нужно по фтп мануал в спокойной обстановке
> перекурить.. В лоб не получилось :)

Ага, я в деталях тоже не знаю нюансов...

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "proftpd + регистр в ссылках"  +/
Сообщение от 2ihi email(ok) on 20-Мрт-12, 12:50 
>> да я набегом занимаюсь, реврайт поставил, пока застопорился на месте к какой
>> команде ФТП прикрутить метод...
> Возможно, надо прикрутить обработку метода RETR (в дополнение).

пробовал - не выходит, тут не RETR а на этапе просмотра нужно думать..

>> нужно по фтп мануал в спокойной обстановке
>> перекурить.. В лоб не получилось :)
> Ага, я в деталях тоже не знаю нюансов...

склоняюсь к тому что не выйдет затея... на диске требуется соблюдение регистра, а то что мы в выводе(в выводе) подсунули измененный регистр на диск это влияния не окажет. Записать на лету файл с изменением в названии - нет проблем, скачать с изменением так же, а вот обратиться к диску с видоизмененной ссылкой не получится. Нужно на диске приводить все к нужному регистру и использовать реврайт имхо.

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "proftpd + регистр в ссылках"  +/
Сообщение от PavelR (ok) on 20-Мрт-12, 16:53 
>[оверквотинг удален]
> думать..
>>> нужно по фтп мануал в спокойной обстановке
>>> перекурить.. В лоб не получилось :)
>> Ага, я в деталях тоже не знаю нюансов...
> склоняюсь к тому что не выйдет затея... на диске требуется соблюдение регистра,
> а то что мы в выводе(в выводе) подсунули измененный регистр на
> диск это влияния не окажет. Записать на лету файл с изменением
> в названии - нет проблем, скачать с изменением так же, а
> вот обратиться к диску с видоизмененной ссылкой не получится. Нужно на
> диске приводить все к нужному регистру и использовать реврайт имхо.

Я вообще не вижу проблемы скриптами прогнать как lowercase в БД так и lowercase в ФС.

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "proftpd + регистр в ссылках"  +/
Сообщение от PavelR (ok) on 20-Мрт-12, 17:07 
>>[оверквотинг удален]
>> думать..
>>>> нужно по фтп мануал в спокойной обстановке
>>>> перекурить.. В лоб не получилось :)
>>> Ага, я в деталях тоже не знаю нюансов...
>> склоняюсь к тому что не выйдет затея... на диске требуется соблюдение регистра,
>> а то что мы в выводе(в выводе) подсунули измененный регистр на
>> диск это влияния не окажет.

Что-то я перестал где-то понимать.

Вывод листинга модифицировать не надо, тогда клиент будет запрашивать файлы в регистре, соответствующем имени файла на диске, проблемы собственно тогда и быть-то не может.

Если у вас кривые данные в БД, то их надо бы по-хорошему исправить.
Я не понимаю, как оно тогда работает, если в БД регистр имен не совпадает с реальным именем в файловой системе, как тогда движок файлы эти находит ?

>ссылок и таблиц настолько много что писать упдейты в БД практически не реально.

Я это как-то не особо могу понять, не может быть такого, т.е. не должно.
Если структура пути собирается по нескольким таблицам, то пишется скрипт и скриптом всё правится.

---

Или, если сильно хочется поизвращаться, то можно взять скрипт реврайта из оф документации профтпд и модифицировать его для своих нужд, реализовав скриптом сопоставление имени файла, полученного из команды RETR в имя файла лежащего на диске.

Но для этого у вас должны быть в БД имена файлов, соответствующие именам файлов в ФС, а если это так, то нет проблем сформировать правильную ссылку. Собственн говоря сопоставление через скрипт тут может быть только для поддержания работоспособности по кривым ссылкам на время процедуры переезда.

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

11. "proftpd + регистр в ссылках"  +/
Сообщение от 2ihi email(ok) on 21-Мрт-12, 08:48 
> Что-то я перестал где-то понимать.
> Вывод листинга модифицировать не надо, тогда клиент будет запрашивать файлы в регистре,
> соответствующем имени файла на диске, проблемы собственно тогда и быть-то не
> может.

в том то и дело что в БД есть разные вариации ссылок, одна может быть на нижний регистр, другая на верхний в той же папке которая может быть и  ВоТвТаКоМ виде...

> Если у вас кривые данные в БД, то их надо бы по-хорошему
> исправить.
> Я не понимаю, как оно тогда работает, если в БД регистр имен
> не совпадает с реальным именем в файловой системе, как тогда движок
> файлы эти находит ?

Данные заносились руками, т.е. каждому файлу прцеплялся ярлык в виде картинки, давалась анотация, всякий сопутствующий хлам итд.. ссылку зачастую брали через браузер, или через експлорер, который может показывать папки с заглавной буквы не смотря на то что на диске оно с маленькой.. короче говоря проблемы не знали пока всем управляла винда, а постепенно с ростом скоростей файловых систем на фре перешли на ЗФС со всеми вытекающими, и заметили проблему.

>>ссылок и таблиц настолько много что писать упдейты в БД практически не реально.
> Я это как-то не особо могу понять, не может быть такого, т.е.
> не должно.
> Если структура пути собирается по нескольким таблицам, то пишется скрипт и скриптом
> всё правится.

Там на одну категорию может быть по 5 таблиц и все это перемешано в кучу.. если бы заполнением занимался человек понимающий структуру БД и чем все это светит то была б унификация, если бы проблема была обозначена на начальных этапах, то естественно её бы решили программным методом или любым другим, а так как все это стояло, работало и не жужжало до определенного момента (лет наверное 8), то через 8 лет мы туда сунулись и офигели..

> ---
> Или, если сильно хочется поизвращаться, то можно взять скрипт реврайта из оф
> документации профтпд и модифицировать его для своих нужд, реализовав скриптом сопоставление
> имени файла, полученного из команды RETR в имя файла лежащего на
> диске.
> Но для этого у вас должны быть в БД имена файлов, соответствующие
> именам файлов в ФС, а если это так, то нет проблем
> сформировать правильную ссылку. Собственн говоря сопоставление через скрипт тут может
> быть только для поддержания работоспособности по кривым ссылкам на время процедуры
> переезда.

что-то мне хочется поправить сам профтпд... думаю в выходные дома займусь.. еще конечно реврайт покручу..

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

12. "proftpd + регистр в ссылках"  +/
Сообщение от Аноним (??) on 22-Мрт-12, 14:21 
> Данные заносились руками, т.е. каждому файлу прцеплялся ярлык в виде картинки, давалась
> анотация, всякий сопутствующий хлам итд.. ссылку зачастую брали через браузер, или
> через експлорер, который может показывать папки с заглавной буквы не смотря
> на то что на диске оно с маленькой.. короче говоря проблемы
> не знали пока всем управляла винда, а постепенно с ростом скоростей
> файловых систем на фре перешли на ЗФС со всеми вытекающими, и
> заметили проблему.

Написать скрипт который бы прогнал все нужные поля в таблицах и все файлы в нужных дирах к нижнему регистру - полчаса работы. выполняться это будет тоже не долго, даже на паре миллионов файлов. имхо, проблема высосана из пальца.

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

10. "proftpd + регистр в ссылках"  +/
Сообщение от 2ihi email(ok) on 21-Мрт-12, 08:40 
>[оверквотинг удален]
>>>> перекурить.. В лоб не получилось :)
>>> Ага, я в деталях тоже не знаю нюансов...
>> склоняюсь к тому что не выйдет затея... на диске требуется соблюдение регистра,
>> а то что мы в выводе(в выводе) подсунули измененный регистр на
>> диск это влияния не окажет. Записать на лету файл с изменением
>> в названии - нет проблем, скачать с изменением так же, а
>> вот обратиться к диску с видоизмененной ссылкой не получится. Нужно на
>> диске приводить все к нужному регистру и использовать реврайт имхо.
> Я вообще не вижу проблемы скриптами прогнать как lowercase в БД так
> и lowercase в ФС.

боюсь нарушится чтоньть... прогнать в принципе можно, но так столько всего что прогонять наверное дня 2 будет.. больше 100ТБ причем файлы есть и по килобайту..

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

2. "proftpd + регистр в ссылках"  +/
Сообщение от Аноним (??) on 19-Мрт-12, 15:20 
zfs set casesensitivity=insensitive pool/home
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "proftpd + регистр в ссылках"  +/
Сообщение от 2ihi email(ok) on 20-Мрт-12, 08:39 
> zfs set casesensitivity=insensitive pool/home

ftp# 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.

видимо не получится..

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру