LINUX.ORG.RU

[torrent][ДОКОЛЕ?] Ограничение на имя файла 255 байт

 


0

0

На torrents.ru лежит чудо-торрент: http://torrents.ru/forum/viewtopic.php?t=788637.

Я попытался скачать его через ktorrent, rtorrent, deluge. Все они отказались.

Торрент был скачал 1302 раза. Судя по всему пользователями альтернативных ОС. Ибо, как я слышал, в их FAT/NTFS ограничение не на 255 UTF-8, а на 255 UTF-16 символов.

У меня нет ни одного FAT/NTFS раздела и ни одной винды поблизости. Однако торрент скачать надо.

Призываю всех попробовать скачать этот торрент своим любимым torrent-клиентом. Если у вас это получится, то укажите каким клиентом вы качали, на какую файловую систему и что за локаль у вас.

Если у вас не получится, то предлагаю отметиться в багзилле вашей любимой программы.

anonymous

Да и что это за дурацкое ограничение на 255 байт в век нанотехнологий?

anonymous
()

ktorrent 2.2.8 -- не получилось

P.S. Вообще за такие длинные названия вантузятникам руки отрубать надо...

Demon37 ★★★★
()
Ответ на: комментарий от Nao

Не работает как на ext3, так и на reiserfs

Nao ★★★★★
()

Судя по http://en.wikipedia.org/wiki/Comparison_of_file_systems У ext3,райзера и нтфс ограничение 255 символов на компоненту. Думаю всё решает используешь ли ты UTF или нет. А почему кстати на нтфс у виндузятников работает? Разьве у них там не уникод? да ещё и UTF-16?

Nao ★★★★★
()
Ответ на: комментарий от Nao

Сделал раздел с нтфс и с успехом создал "длинный" файл.

Nao ★★★★★
()

>У меня нет ни одного FAT/NTFS раздела и ни одной винды поблизости. Однако торрент скачать надо.

Надо построить костыль

dd if=/dev/zero of=$HOME/ffuuu bs=3000M
mkfs.ntfs $HOME/ffuuu
mount -o loop -t ntfs-3g $HOME/ffuuu /mnt/ffuuu

as33 ★☆☆
()
Ответ на: комментарий от Nao

> У ext3,райзера и нтфс ограничение 255 символов на компоненту.

У рейзера (что видно из таблицы) нет такого ограничения. 255 символов локали — это ограничение Linux VFS. Максимальная длина имени файла у reiserfs — 4032 байт.

> А почему кстати на нтфс у виндузятников работает? Разьве у них там не уникод? да ещё и UTF-16?

Юникод. У NTFS именно 255 символов UTF-16, т.е. максимум 1020 байт UTF-8.

anonymous
()
Ответ на: комментарий от Demon37

> Вообще за такие длинные названия вантузятникам руки отрубать надо...

Согласен.

А ещё руки надо отрубать ядропейсателям, ставящим такие ограничения. И неужели придётся переписывать полностью ядро? Неужели это там не выглядит как #define MAX_FILENAME_SIZE 255?

А так же пейсателям торрент-качалок. Почему из-за невозможности создать один файл надо отказываться грузить тысячу? Ну не можешь ты создать, ну не качай этот файл. Ведь в каждой торрент-качалке есть возможность выбрать качаемые файлы. Но нет. Они упорно пытаются создать на диске файлы, которые я приказал не качать. Это ли не маразм?

Проблему могут исправить как первые так и вторые. Причем решение на уровне торрент-клиента гораздо гибче и не будет зависеть от используемой fs и локали.

anonymous
()
Ответ на: комментарий от anonymous

man mkntfs. Опция -F, или сделать losetup на файл и форматировать соответсвующее loop-устройство.

mky ★★★★★
()

Что-то вы странное говорите. У меня этот торрент начал качаться под несколькими торрент-клиентами:
rtorrent 0.7.9
transmission 1.40 (7096)
azureus 2.5
bittyrant 0.7.6

вывод команды locale:
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

файловая система ReiserFS 3.6, система Debian 5.0, ядро 2.6.25, архитектура x86_64

anonymous
()
Ответ на: комментарий от anonymous

$ mkfs.ntfs -F ./ffuuu

<...>

$ sudo mount -o loop -t ntfs-3g ./ffuuu /mnt/ffuuu

$ touch /mnt/ffuuu/$(python -c 'print "a"*256')
touch: невозможно выполнить touch для `/mnt/ffuuu/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaa': File name too long

лол

as33 ★☆☆
()
Ответ на: комментарий от anonymous

ext3, ubuntu hardy, 2.6.24 x86_64 - нормально качается в transmission

Имена файлов там кстати совсем не длинные

JB ★★★★★
()
Ответ на: комментарий от Demon37

> ktorrent 2.2.8 -- не получилось
> P.S. Вообще за такие длинные названия вантузятникам руки отрубать надо...


Руки отрубать нужно за тупые ограничения.

andreyu ★★★★★
()

Аффтар,чини свой аппарат.Делюж,Рейзер,UTF-8-качает!

anonymous
()

Есть ли среди присутсвующих те кто смог сделать touch $(python -c 'print "Ж"*128') на любой фс (под линуксом) с юникодной локалью?

Nao ★★★★★
()
Ответ на: комментарий от as33

Проверил у себя: ntfs: создаёт 255 a, а также 255 п reiserfs: создаёт 255 a, но только 127 п

anonymous
()
Ответ на: комментарий от anonymous

$ locale
LANG=ru_RU.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=

# mkfs.reiserfs -V
mkfs.reiserfs 3.6.19 (2003 www.namesys.com)

$ uname -r
2.6.26-1-686

$ cat /etc/debian_version
5.0

Не качает ни одним клиентом. ЧЯДНТ?

anonymous
()
Ответ на: комментарий от Nao

> Есть ли среди присутсвующих те кто смог сделать touch $(python -c 'print "Ж"*128') на любой фс (под линуксом) с юникодной локалью?

поправка. на любой фс кроме нтфс)

Весь прикол что у нтфс ограничение в 255 _символов_, а у ext3, 255 _байт_. Но мне остаётся непонятным почему я не могу сделать 128Ж в райзере...

Nao ★★★★★
()

Кстати, заметил, что качается у тех, у кого ядро x86_64. Это может быть как-то связано?

anonymous
()
Ответ на: комментарий от Nao

Возможно потому, что 255 байт — это ограничение VFS. А ntfs-3g — это fuse?

anonymous
()

Debian testing x86_64, ext3. Ни ktorrent, ни azureus не смог скачать. Не качать именно этот файл не пробовал.

a3
()
Ответ на: комментарий от Nao

> Есть ли среди присутсвующих те кто смог сделать touch $(python -c 'print "Ж"*128') на любой фс (под линуксом) с юникодной локалью?

ReiserFS:

$ touch $(python -c 'print "Ж"*128')
touch: cannot touch `ЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖ ЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖ': File name too long

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

Хех, пофигу - на ReiserFS аналогично не создается.

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

>Руки отрубать нужно за тупые ограничения.

ага. прикинь если ты шагнешь с 10-го этажа то наверняка убьешься. тебя ограничили!

black7
()
Ответ на: комментарий от black7

Ограничения, иногда, нужны, но адекватные, отражающие реальность. Данное ограничение пережиток суровых времен (оно, пока, должно быть, но, как минимум, на порядок, а то и два больше).

a3
()

ktorren-3.2-dev, ext3, ru_RU.UTF-8. качает.

mic ★★★★★
()
Ответ на: комментарий от andreyu

Все python -c 'print "Ж"*128' генерирует 256 байт (а ограничение 255). Попробуйте сделать "Ж"*127 и все получится.

К тому же не стоит забывать, что в utf-8 длина символа может меняться (до 6-ти байт на символ в некоторых случаях). См unicode.org.

anonymous
()
Ответ на: комментарий от as33

>touch /mnt/ffuuu/$(python -c 'print "a"*256')

На xfs и reiserfs не создалось.

На reiser4 создалось.

KRoN73 ★★★★★
()
Ответ на: комментарий от Nao

$ cd /var/tmp/portage/
$ df -lTh .
Ф. система    Тип     Разм  Исп  Дост  Исп% смонтирована на
/dev/mapper/balvg-var--tmp--portage
           reiser4    5,8G  403M  5,4G   7% /var/tmp/portage
$ touch $(python -c 'print "Ж"*128')
$ ls Ж*
ЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖ
ЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖ
$ rm Ж*

KRoN73 ★★★★★
()

У меня было похожее с другим торрентом. Скачать получилось только при помощи transmission.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.