Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

Количество файлов вложений в папке files - какие ограничения?

Проблемы с установкой или работой phpBB 3.2.x? Получите помощь здесь!
Внимание: с 7 ноября 2020 года phpBB Group завершено дальнейшее развитие phpBB версии 3.2, а с 1 августа 2024 года будет прекращена её поддержка.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.

Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB 3.1.x/3.2.x | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
southklad
phpBB 3.1.0 RC2
Сообщения: 3232
Стаж: 12 лет 2 месяца
Благодарил (а): 797 раз
Поблагодарили: 175 раз

Re: Количество файлов вложений в папке files - какие ограничения?

Сообщение southklad »

60 К вложений и 9,1 ГБ тоже фтп открывается, не сразу, но открывается
Изображение
Аватара пользователя
Pazh
Former team member
Сообщения: 2317
Стаж: 14 лет 4 месяца
Благодарил (а): 43 раза
Поблагодарили: 506 раз
Контактная информация:

Re: Количество файлов вложений в папке files - какие ограничения?

Сообщение Pazh »

Gubkin, igorbond, а теперь сделайте замер времени на поиск одного файла в папке с вашим кол-вом вложений и в двухуровневой папке.
Или другой тест - откройте папку со своими вложениями в ftp клиенте и нажмите клавишу End - засекайте время
Помощь в ЛС/email только за WM или ЮMoney
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5270
Стаж: 19 лет 2 месяца
Откуда: Питер
Благодарил (а): 188 раз
Поблагодарили: 800 раз
Контактная информация:

Re: Количество файлов вложений в папке files - какие ограничения?

Сообщение Siava »

Pazh, смотря какая файловая система используется, с ReiserFS всё летает в этом плане))
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x 3.5.x)
Аватара пользователя
Pazh
Former team member
Сообщения: 2317
Стаж: 14 лет 4 месяца
Благодарил (а): 43 раза
Поблагодарили: 506 раз
Контактная информация:

Re: Количество файлов вложений в папке files - какие ограничения?

Сообщение Pazh »

Siava, ага, ты это 99% "админов" объясни, особенно тем кто на шаре сидит
Помощь в ЛС/email только за WM или ЮMoney
Vlad__
phpBB 2.0.7
Сообщения: 566
Стаж: 7 лет 3 месяца
Благодарил (а): 283 раза
Поблагодарили: 65 раз

Re: Количество файлов вложений в папке files - какие ограничения?

Сообщение Vlad__ »

Зачем эти самоуспокоения? Если вложений относительно мало, да и размер шары не позволяет их хранить много, то храним все в одной папке. Если много и будет еще больше - делаем многоуровневое. Патчи в интернете есть, правда на новых версиях не феншуй, т.к. не расширение, но есть. Например: https://area51.phpbb.com/phpBB/viewtopic.php?t=52226
Допиливаем (есть нюансы, там не все учтено), если требуется изменяем свои расширения под него и пользуемся. У меня установлен вариант того, что по ссылке. Полет абсолютно нормальный. Ноу проблем! Самое главное, ничего не изменяет в БД и прост как 5 копеек.
Аватара пользователя
BadBlock
phpBB 1.4.3
Сообщения: 92
Стаж: 19 лет
Откуда: Саров, Россия
Благодарил (а): 8 раз
Поблагодарили: 14 раз
Контактная информация:

Re: Количество файлов вложений в папке files - какие ограничения?

Сообщение BadBlock »

Vlad__ писал(а): 11.05.2018 11:35 не расширение, но есть. Например: https://area51.phpbb.com/phpBB/viewtopic.php?t=52226
Да, по ссылке мой патч. Написал для себя, использую в боевом режиме с ноября, полёт нормальный.
По ссылке только один патч — раскидывает аттачи по подпапкам, а также заодно автоматически правильно поворачивает лежащие на боку вертикальные фотки.

Файлы изначально грузятся в /files — туда же, куда и сейчас, а перемещение и трансформация производится в момент загрузки (просмотра) вложения. Этим обеспечивается простота модификации (модифицированы всёго два файла, причём в обоих вставка доп. кода одним блоком), полная совместимость снизу вверх и обработка уже имеющихся файлов без дополнительного кода и нагрузки на сервер.

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

На самом деле полный комплект состоит из двух патчей — второй, кроме самой фотки, поворачивает также и её превьюшку.
Проверьте в phpinfo(), что в PHP установлено расширение EXIF.
Накладывать по порядку при помощи git apply:
1: http://files.sarov.info/2018/attachment ... ers-1.diff
2: http://files.sarov.info/2018/attachment ... ers-2.diff
Полет абсолютно нормальный. Ноу проблем! Самое главное, ничего не изменяет в БД и прост как 5 копеек.
Есть одна загвоздка, которая проявится в том случае, если в ядре phpBB будет реализовано хранение вложений в подпапках, структура которых будет отличаться от моей. В этом случае, вероятно, нужно будет писать патч или, скорее, одноразовый скрипт для обеспечения миграции. Для себя-то я по-любому сделаю, так что если используете патчи, то пните меня в ЛС или почту, если я забуду выложить средство для миграции тут.

Отправлено спустя 35 минут 21 секунду:
Для тех, кто не умеет с git:

1. Открыть файл:

Код: Выделить всё

forum/phpbb/attachment/delete.php

Найти строку:

Код: Выделить всё

$filename = ($mode == 'thumbnail') ? 'thumb_' . utf8_basename($filename) : utf8_basename($filename);

После неё вставить:

Код: Выделить всё

        // BadBlock start.
        // Delete file in new location, old location will be cleared below by core.
        if (preg_match("/^\d+_(.*)$/", $filename, $pockets) || preg_match("/^thumb_\d+_(.*)$/", $filename, $pockets)) {
            $subdir1 = substr($pockets[1], 0, 2);
            $subdir2 = substr($pockets[1], 2, 2);
            $this->filesystem->remove($phpbb_root_path . $this->config['upload_path'] . "/{$subdir1}/{$subdir2}/" . $filename);
        }
        // BadBlock end.

2. Открыть файл:

Код: Выделить всё

includes/functions_download.php

Найти строку:

Код: Выделить всё

$filename = $phpbb_root_path . $upload_dir . '/' . $attachment['physical_filename'];

После неё вставить:


Вариант 1: только функционал "файлы в подпапках", картинки не модифицируем:

Код: Выделить всё

    // BadBlock start.
    if (preg_match("/^\d+_(.*)$/", $attachment['physical_filename'], $pockets) || preg_match("/^thumb_\d+_(.*)$/", $attachment['physical_filename'], $pockets)) {
        $subdir1 = substr($pockets[1], 0, 2);
        $subdir2 = substr($pockets[1], 2, 2);
        $filename = $phpbb_root_path . $upload_dir . "/{$subdir1}/{$subdir2}/" . $attachment['physical_filename'];
        $filedir = $phpbb_root_path . $upload_dir . "/{$subdir1}/{$subdir2}";
        $oldfilename = $phpbb_root_path . $upload_dir . '/' . $attachment['physical_filename'];
        if (!@file_exists($filename))
        {
            if (!@file_exists($oldfilename)) {
                send_status_line(404, 'Not Found');
                trigger_error('ERROR_NO_ATTACHMENT');
            }
            if (!is_dir($filedir)) {
                @mkdir($filedir, 0777, true);
            }
            if (!@rename($oldfilename, $filename)) {
                send_status_line(404, 'Not Found');
                trigger_error('ERROR_NO_ATTACHMENT');
            }
        }
    }
    // BadBlock end.


Или вариант 2: заодно поворачиваем неправильно ориентированные фотографии:

Код: Выделить всё

    // BadBlock start.
    if (preg_match("/^\d+_(.*)$/", $attachment['physical_filename'], $pockets) || preg_match("/^thumb_\d+_(.*)$/", $attachment['physical_filename'], $pockets)) {
        $subdir1 = substr($pockets[1], 0, 2);
        $subdir2 = substr($pockets[1], 2, 2);
        $filename = $phpbb_root_path . $upload_dir . "/{$subdir1}/{$subdir2}/" . $attachment['physical_filename'];
        $filedir = $phpbb_root_path . $upload_dir . "/{$subdir1}/{$subdir2}";
        $oldfilename = $phpbb_root_path . $upload_dir . '/' . $attachment['physical_filename'];
        if (!@file_exists($filename))
        {
            if (!@file_exists($oldfilename)) {
                send_status_line(404, 'Not Found');
                trigger_error('ERROR_NO_ATTACHMENT');
            }
            if (!is_dir($filedir)) {
                @mkdir($filedir, 0777, true);
            }
            if (!@rename($oldfilename, $filename)) {
                send_status_line(404, 'Not Found');
                trigger_error('ERROR_NO_ATTACHMENT');
            }
            // Fix image orientation.
            if (function_exists('exif_read_data')) {
                $exif = exif_read_data($filename);
                if (!empty($exif['Orientation'])) {
                    $image = imagecreatefromjpeg($filename);
                    $rotate = 0;
                    switch ($exif['Orientation']) {
                        case 3:
                            $rotate = 180;
                            break;
                        case 6:
                            $rotate = -90;
                            break;
                        case 8:
                            $rotate = 90;
                            break;
                    }
                    if ($rotate != 0) {
                        $image = imagerotate($image, $rotate, 0);
                        imagejpeg($image, $filename, 90);

                        // Rotate thumbnail as well.
                        if (!preg_match("/^thumb_\d+_(.*)$/", $attachment['physical_filename'], $pockets)) {
                            // error_log("Not thumbnail", 0);
                            $filename_thumb = $phpbb_root_path . $upload_dir . "/{$subdir1}/{$subdir2}/thumb_" . $attachment['physical_filename'];
                            $oldfilename_thumb = $phpbb_root_path . $upload_dir . '/thumb_' . $attachment['physical_filename'];
                            if (!@file_exists($filename_thumb) && @file_exists($oldfilename_thumb)) {
                                // Move thumbnail to subfolder.
                                // error_log("Move thumbnail", 0);
                                @rename($oldfilename_thumb, $filename_thumb);
                            }
                            if (@file_exists($filename_thumb)) {
                                // error_log("Rotate thumbnail", 0);
                                $image = imagecreatefromjpeg($filename_thumb);
                                $image = imagerotate($image, $rotate, 0);
                                imagejpeg($image, $filename_thumb, 90);
                            }
                        }
                    }
                }
            }
        }
    }
    // BadBlock end.
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 1 месяц
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2752 раза
Контактная информация:

Re: Количество файлов вложений в папке files - какие ограничения?

Сообщение Sheer »

Порочная практика. В 3.1 и 3.2 файлы ядра править не принято. Ибо после обновления рекомендованным способом от ваших правок в лучшем случае останутся одни лишь воспоминания.
BadBlock писал(а): 12.08.2018 8:29 заодно поворачиваем неправильно ориентированные фотографии
Для этого давным-давно существует расширение
[3.1][3.2][beta] Attached image rotator
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
BadBlock
phpBB 1.4.3
Сообщения: 92
Стаж: 19 лет
Откуда: Саров, Россия
Благодарил (а): 8 раз
Поблагодарили: 14 раз
Контактная информация:

Re: Количество файлов вложений в папке files - какие ограничения?

Сообщение BadBlock »

Sheer писал(а): 12.08.2018 10:56 Порочная практика. В 3.1 и 3.2 файлы ядра править не принято. Ибо после обновления рекомендованным способом от ваших правок в лучшем случае останутся одни лишь воспоминания.
Повторяю, я это делал лично для себя. Делюсь с теми, кому интересно, и кто хорошо понимает, что и зачем делает. Дополню: если вы не имеете отношения к программированию, не понимате, как что работает, не используйте этот патч, вообще не прикасайтесь к нему.
Sheer писал(а): 12.08.2018 10:56 Для этого давным-давно существует расширение
Очень рад, большое спасибо.
Специально на такой случай я привёл вариант, из которого поворот картинок убран.
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 1 месяц
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2752 раза
Контактная информация:

Re: Количество файлов вложений в папке files - какие ограничения?

Сообщение Sheer »

BadBlock писал(а): 12.08.2018 11:11 лично для себя
Даже в этом случае логичнее было бы добавить событие в функцию unlink_attachment, создать полноценное расширение и запросить добавление события в грядущие версии движка. Тут Пожелания дополнений Event List
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
Perfecthus
phpBB 2.0.10
Сообщения: 799
Стаж: 13 лет 5 месяцев
Откуда: Оттуда
Благодарил (а): 63 раза
Поблагодарили: 89 раз
Контактная информация:

Re: Количество файлов вложений в папке files - какие ограничения?

Сообщение Perfecthus »

BadBlock писал(а): 12.08.2018 8:29 forum/phpbb/attachment/delete.php
Для какой версии phpbb этот путь? Что-то в 3.1.5 я таких каталогов /phpbb/attachment/не вижу.
Аватара пользователя
BadBlock
phpBB 1.4.3
Сообщения: 92
Стаж: 19 лет
Откуда: Саров, Россия
Благодарил (а): 8 раз
Поблагодарили: 14 раз
Контактная информация:

Re: Количество файлов вложений в папке files - какие ограничения?

Сообщение BadBlock »

Perfecthus писал(а): 30.10.2018 10:22 Для какой версии phpbb этот путь? Что-то в 3.1.5 я таких каталогов /phpbb/attachment/не вижу.
Это для 3.2. Вариант с автоповоротом фотографий, кстати, был мной к настоящему времени уже модифицирован, немного пофиксена логика, так что "вариант 2" в том виде, в каком он опубликован выше, не рекомендую. Вообще, вон выше дали ссылку на расширение для поворота картинок, поэтому чистого функционала "файлы в подпапках" достаточно.
Аватара пользователя
Perfecthus
phpBB 2.0.10
Сообщения: 799
Стаж: 13 лет 5 месяцев
Откуда: Оттуда
Благодарил (а): 63 раза
Поблагодарили: 89 раз
Контактная информация:

Re: Количество файлов вложений в папке files - какие ограничения?

Сообщение Perfecthus »

Мне для файлов и нужно, поворот изображений без надобности.
Аватара пользователя
BadBlock
phpBB 1.4.3
Сообщения: 92
Стаж: 19 лет
Откуда: Саров, Россия
Благодарил (а): 8 раз
Поблагодарили: 14 раз
Контактная информация:

Re: Количество файлов вложений в папке files - какие ограничения?

Сообщение BadBlock »

Тогда бери после слов "Для тех, кто не умеет git" вариант 1.
Аватара пользователя
Stalker_W
phpBB 1.0.0
Сообщения: 1
Стаж: 4 года 1 месяц
Откуда: Украина, Киев
Контактная информация:

Re: Количество файлов вложений в папке files - какие ограничения?

Сообщение Stalker_W »

BadBlock писал(а): 12.08.2018 8:29Да, по ссылке мой патч. Написал для себя, использую в боевом режиме с ноября, полёт нормальный.
Вроде вы написали, что вы изначально делали мод под версию 3.0. Поделитесь?
Аватара пользователя
BadBlock
phpBB 1.4.3
Сообщения: 92
Стаж: 19 лет
Откуда: Саров, Россия
Благодарил (а): 8 раз
Поблагодарили: 14 раз
Контактная информация:

Re: Количество файлов вложений в папке files - какие ограничения?

Сообщение BadBlock »

Stalker_W писал(а): 09.02.2020 16:36 Вроде вы написали, что вы изначально делали мод под версию 3.0. Поделитесь?
Давно дело было, сейчас найти неспросто, а если и найти, то проверить.
Ответить

Вернуться в «Поддержка phpBB 3.2.x»