вложения (файлы) к сообщениям
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
вложения (файлы) к сообщениям
Относительно вложений (прикрепляемых к сообщениям файлам) уже обсуждалось (и изменялось) за годы существования форума:
прикрепляемые файлы: расширения и ограничения
Но ...
- форум прошёл очень существенную реконструкцию, сменился хостинг, вместо виртуального хостинга он теперь размещён на отдельном виртуальном облачном сервере, VDS ...
- обсуждения те довольно старые ... чего старое ворошить? подымать старые темы?
В отношении вложений важно навести порядок (внести ясность) по следующим вопросам:
1. какие по типам расширения файлы могут прикрепляться к сообщениям?
2. какой максимальный допустимый размер файлов вложений? зависит он от типа файла?
3. возникают, временами, потерянные вложения ... из-за халявного администрирования от случая к случаю - с ними нужно навести порядок: либо удалить, либо прикрепить к тем конкретным сообщениям, которым они предназначались.
прикрепляемые файлы: расширения и ограничения
Но ...
- форум прошёл очень существенную реконструкцию, сменился хостинг, вместо виртуального хостинга он теперь размещён на отдельном виртуальном облачном сервере, VDS ...
- обсуждения те довольно старые ... чего старое ворошить? подымать старые темы?
В отношении вложений важно навести порядок (внести ясность) по следующим вопросам:
1. какие по типам расширения файлы могут прикрепляться к сообщениям?
2. какой максимальный допустимый размер файлов вложений? зависит он от типа файла?
3. возникают, временами, потерянные вложения ... из-за халявного администрирования от случая к случаю - с ними нужно навести порядок: либо удалить, либо прикрепить к тем конкретным сообщениям, которым они предназначались.
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: вложения (файлы) к сообщениям
Там много разных людей и много лет дополняли, изменяли, редактировали...
В итоге разрешённые расширения файлов по группам расширений приписаны так (чтобы знать заранее и не напарываться непосредственно при вложении):
Изображения:
Архивы:bmp gif jpeg jpg pgm png tga tif tiff xcf
Текстовые файлы:7z ace bz2 gtar gz rar tar tgz zip
Документы:csv diz hist ini log lst txt xml
Файлы Flash:ai doc docm docx dot dotm dotx odg odp ods odt pdf ppt pptm pptx ps rtf xls xlsb xlsm xlsx
Скачиваемый файлы:flv swf
Программный код:apk dat djvu ogm torrent
Аудио:c cc conf cpp f go h hpp hs ino java js kt lua ml php pm py pyx rb rs scala scb scm sh swift tcl
Мультимедиа:mid midi mp3 ogg raw spx wav
не назначена категория:avi mov mp4 mpeg mpg webm
Явно видно, что там много лишнего ... но это не я дополнял, и нужно ли это подчищать - пока не уверен.3g2 3gp m4a m4v qt
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: вложения (файлы) к сообщениям
На админстранице phpBB в "Настройки вложений" для "Максимальный размер файла" указано 0.
В примечании к этому параметру записано:
Максимальный размер каждого загружаемого файла. Если значение равно 0, размер файла ограничен только конфигурацией PHP.
Но вот только недавно (может после обновления phpBB до 3.2.8) обнаружено, что вложения-изображения (.jpg, .png) размером больше ~2.5Mb создают ошибку.
С этим нужно разбираться!
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: вложения (файлы) к сообщениям
На сегодня, за 10 лет работы форума (довольно бесконтрольной) потерянные вложения выглядят так: Собственно, нужно разобрать 13 вложений, и добавленных в последние 1/2 года (в период особой бесхозности).
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: вложения (файлы) к сообщениям
Разбираюсь со структурой БД и файлов вложений в phpBB...
(это служебная информация, которая может быть минимально интересна только тем, кто работает с конференциями под управлением phpBB)
Вложенные файлы находятся в подкаталоге files, отсчитываемом от корневого каталога конференции:
Код: Выделить всё
root@277938:/var/www/linux-ru.ru/files# pwd
/var/www/linux-ru.ru/files
root@277938:/var/www/linux-ru.ru/files# ls -l | wc -l
5836
Т.е. все файлы вложений в phpBB - переименованы, а соответствие их реальным именам файлов (как они помещались во вложения), темам и сообщениям, к которым они прикреплены - всё это находится в базе данных MySQL (в реализации MariaDB):
Код: Выделить всё
olej@277938:~$ mysql --version
mysql Ver 15.1 Distrib 10.3.18-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: вложения (файлы) к сообщениям
См. начало списка файлов, от самых больших к меньшим:
Код: Выделить всё
olej@277938:/var/www/linux-ru.ru/files$ ls -l -S | head -n20
итого 1137676
-rw-r--r-- 1 www-data www-data 106286599 дек 22 01:20 11018_a5775236643fc95166f4fd9e3e8005e1
-rw-r--r-- 1 www-data www-data 66433524 дек 22 01:16 files.zip
-rw-r--r-- 1 www-data www-data 47272089 дек 22 01:19 4065_7da5d7a86f5943115aa0197608b3ab6b
-rw-r--r-- 1 www-data www-data 14426203 дек 22 01:25 4065_442d457b2de43d143da50ab79cab2074
-rw-r--r-- 1 www-data www-data 13506394 дек 22 01:19 4065_44bfeb492d1e87ba67cf5c5c50905d22
-rw-r--r-- 1 www-data www-data 12497904 дек 22 01:18 4065_1abbec50608b859580cd7e94e8685ada
-rw-r--r-- 1 www-data www-data 12222464 дек 22 01:16 4065_c6d761ef1fd20c4d87002d8181cf49c2
-rw-r--r-- 1 www-data www-data 10733663 дек 22 01:15 4065_02df78b348cfb6cbbaa65165998bc31e
-rw-r--r-- 1 www-data www-data 10606820 дек 22 01:23 4065_42835060018ed74fe3bb89d7f8c961b3
-rw-r--r-- 1 www-data www-data 9404751 дек 22 01:21 4065_5e411ebe8a4a13595c7f006c0c8f7f50
-rw-r--r-- 1 www-data www-data 8840207 дек 22 01:18 4065_ef372248a5f279ae5bd6136b7c8490d6
-rw-r--r-- 1 www-data www-data 8507318 дек 22 01:16 4065_bd4eea5a7b60c90802865ff2527c7797
-rw-r--r-- 1 www-data www-data 8018572 дек 22 01:24 4065_d0506484b21d0ccf5cc2b4e1be9d9f5b
-rw-r--r-- 1 www-data www-data 7643852 дек 22 01:16 4065_be6858e541a6221ef1d56ec7482a4de1
-rw-r--r-- 1 www-data www-data 7458068 дек 22 01:15 4065_d52e4113806f42e2550f86da8984e421
-rw-r--r-- 1 www-data www-data 6758664 дек 22 01:14 4081_fad3e69aa02ec2621f10a85ced06629d
-rw------- 1 www-data www-data 6730140 дек 22 01:25 4065_6b70017598e901c8195e3d25990867d7
-rw-r--r-- 1 www-data www-data 6499453 дек 22 01:19 4065_a9ff27b0b7aa8c55d7e1535063300fb3
-rw-r--r-- 1 www-data www-data 5693768 дек 22 01:22 4065_6cd4e992a08f5315252fde8e82c41eee
Код: Выделить всё
olej@277938:/var/www/linux-ru.ru/files$ file 11018_a5775236643fc95166f4fd9e3e8005e1
11018_a5775236643fc95166f4fd9e3e8005e1: gzip compressed data, last modified: Thu Jun 14 10:04:07 2012, max compression, from Unix, original size 527605760
olej@277938:/var/www/linux-ru.ru/files$ file 4065_7da5d7a86f5943115aa0197608b3ab6b
4065_7da5d7a86f5943115aa0197608b3ab6b: PDF document, version 1.6
olej@277938:/var/www/linux-ru.ru/files$ file 4065_6cd4e992a08f5315252fde8e82c41eee
4065_6cd4e992a08f5315252fde8e82c41eee: ISO Media, MPEG v4 system, 3GPP
olej@277938:/var/www/linux-ru.ru/files$ file 4065_a9ff27b0b7aa8c55d7e1535063300fb3
4065_a9ff27b0b7aa8c55d7e1535063300fb3: DjVu multiple page document
olej@277938:/var/www/linux-ru.ru/files$ file 4065_6b70017598e901c8195e3d25990867d7
4065_6b70017598e901c8195e3d25990867d7: gzip compressed data, last modified: Tue Dec 18 15:14:20 2018, from Unix, original size 6748160
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: вложения (файлы) к сообщениям
Переходим к БД - самое интересное место...
Конкретные параметры БД в phpBB читаем в файле config.php (все разговоры про корневой каталог форума):
Код: Выделить всё
olej@277938:~$ cat /var/www/linux-ru.ru/config.php
<?php
// phpBB 3.0.x auto-generated configuration file
// Do not change anything in this file!
$dbms = 'mysqli';
$dbhost = 'localhost';
$dbport = '';
$dbname = 'forum';
$dbuser = 'xxxxxxxx';
$dbpasswd = 'zzzzzzzz';
$table_prefix = 'rlf1_';
$acm_type = 'file';
$load_extensions = '';
...
Код: Выделить всё
olej@277938:~$ sudo mysql -u xxxxxxxx --password=zzzzzzzz
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 12953
Server version: 10.3.18-MariaDB-0+deb10u1 Debian 10
Код: Выделить всё
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| forum |
| information_schema |
| mysql |
| performance_schema |
+--------------------+
4 rows in set (0.005 sec)
Код: Выделить всё
MariaDB [(none)]> use forum
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB [forum]> show tables;
+--------------------------+
| Tables_in_forum |
+--------------------------+
| rl_comments |
| rl_eval |
| rl_pages |
| rlf1_acl_groups |
| rlf1_acl_options |
| rlf1_acl_roles |
| rlf1_acl_roles_data |
| rlf1_acl_users |
| rlf1_attachments |
| rlf1_banlist |
| rlf1_bbcodes |
| rlf1_bookmarks |
| rlf1_bots |
| rlf1_captcha_answers |
| rlf1_captcha_questions |
| rlf1_clicks |
| rlf1_config |
| rlf1_config_text |
| rlf1_confirm |
| rlf1_disallow |
| rlf1_drafts |
| rlf1_ext |
| rlf1_extension_groups |
| rlf1_extensions |
| rlf1_forums |
| rlf1_forums_access |
| rlf1_forums_track |
| rlf1_forums_watch |
| rlf1_groups |
| rlf1_icons |
| rlf1_lang |
| rlf1_log |
| rlf1_login_attempts |
| rlf1_migrations |
| rlf1_moderator_cache |
| rlf1_modules |
| rlf1_notification_types |
| rlf1_notifications |
| rlf1_oauth_accounts |
| rlf1_oauth_states |
| rlf1_oauth_tokens |
| rlf1_poll_options |
| rlf1_poll_votes |
| rlf1_posts |
| rlf1_privmsgs |
| rlf1_privmsgs_folder |
| rlf1_privmsgs_rules |
| rlf1_privmsgs_to |
| rlf1_profile_fields |
| rlf1_profile_fields_data |
| rlf1_profile_fields_lang |
| rlf1_profile_lang |
| rlf1_qa_confirm |
| rlf1_ranks |
| rlf1_register_log |
| rlf1_reports |
| rlf1_reports_reasons |
| rlf1_search_results |
| rlf1_search_wordlist |
| rlf1_search_wordmatch |
| rlf1_sessions |
| rlf1_sessions_keys |
| rlf1_sitelist |
| rlf1_smilies |
| rlf1_styles |
| rlf1_teampage |
| rlf1_topics |
| rlf1_topics_posted |
| rlf1_topics_track |
| rlf1_topics_watch |
| rlf1_user_group |
| rlf1_user_notifications |
| rlf1_users |
| rlf1_warnings |
| rlf1_words |
| rlf1_zebra |
+--------------------------+
76 rows in set (0.001 sec)
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: вложения (файлы) к сообщениям
Для вложений из всего форума нас интересует только таблица:
Код: Выделить всё
MariaDB [forum]> DESCRIBE rlf1_attachments;
+-------------------+-----------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+-----------------------+------+-----+---------+----------------+
| attach_id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| post_msg_id | int(10) unsigned | NO | MUL | 0 | |
| topic_id | int(10) unsigned | NO | MUL | 0 | |
| in_message | tinyint(1) unsigned | NO | | 0 | |
| poster_id | int(10) unsigned | NO | MUL | 0 | |
| is_orphan | tinyint(1) unsigned | NO | MUL | 1 | |
| physical_filename | varchar(255) | NO | | | |
| real_filename | varchar(255) | NO | | | |
| download_count | mediumint(8) unsigned | NO | | 0 | |
| attach_comment | text | NO | | NULL | |
| extension | varchar(100) | NO | | | |
| mimetype | varchar(100) | NO | | | |
| filesize | int(20) unsigned | NO | | 0 | |
| filetime | int(11) unsigned | NO | MUL | 0 | |
| thumbnail | tinyint(1) unsigned | NO | | 0 | |
+-------------------+-----------------------+------+-----+---------+----------------+
15 rows in set (0.006 sec)
Код: Выделить всё
MariaDB [forum]> SELECT COUNT(*) FROM rlf1_attachments;
+----------+
| COUNT(*) |
+----------+
| 3693 |
+----------+
1 row in set (0.000 sec)
Код: Выделить всё
MariaDB [forum]> SELECT * FROM rlf1_attachments WHERE physical_filename = "11018_a5775236643fc95166f4fd9e3e8005e1";
+-----------+-------------+----------+------------+-----------+-----------+----------------------------------------+------------------+----------------+----------------+-----------+------------------+-----------+------------+-----------+
| attach_id | post_msg_id | topic_id | in_message | poster_id | is_orphan | physical_filename | real_filename | download_count | attach_comment | extension | mimetype | filesize | filetime | thumbnail |
+-----------+-------------+----------+------------+-----------+-----------+----------------------------------------+------------------+----------------+----------------+-----------+------------------+-----------+------------+-----------+
| 2575 | 17985 | 1311 | 0 | 11018 | 0 | 11018_a5775236643fc95166f4fd9e3e8005e1 | gcc-4.7.1.tar.gz | 59 | | gz | application/gzip | 106286599 | 1496914374 | 0 |
+-----------+-------------+----------+------------+-----------+-----------+----------------------------------------+------------------+----------------+----------------+-----------+------------------+-----------+------------+-----------+
1 row in set (0.002 sec)
Нужные нам поля:
Код: Выделить всё
MariaDB [forum]> SELECT post_msg_id,topic_id,physical_filename,real_filename FROM rlf1_attachments limit 1,5;
+-------------+----------+---------------------------------------+-----------------+
| post_msg_id | topic_id | physical_filename | real_filename |
+-------------+----------+---------------------------------------+-----------------+
| 6037 | 1976 | 4065_2497f08530ae6e747635b9654561f012 | chart2.png |
| 1723 | 1388 | 3832_9da978eda562a214330d2e320c8512ee | nfsuserver.rar |
| 2104 | 1498 | 4065_32d834b2c05feae5a696e1724976740c | nvidia.info.png |
| 1985 | 1476 | 4030_30b474da9d060c2af4bd70a69a9fbaf6 | mc.JPG |
| 1989 | 1476 | 4030_e6d745f8fc25e7ed66d53c297283e0d5 | localeru.JPG |
+-------------+----------+---------------------------------------+-----------------+
5 rows in set (0.001 sec)
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: вложения (файлы) к сообщениям
Ну а дальше разобраться (найти их) с потерянными вложениями совсем просто... беру последнее имя из скрина выше:
Код: Выделить всё
MariaDB [forum]> SELECT post_msg_id,topic_id,physical_filename,real_filename FROM rlf1_attachments WHERE real_filename = "Снимок экрана от 2019-10-01 00-32-19.png";
+-------------+----------+---------------------------------------+--------------------------------------------------------+
| post_msg_id | topic_id | physical_filename | real_filename |
+-------------+----------+---------------------------------------+--------------------------------------------------------+
| 0 | 0 | 4065_05ab645f8f2516c74fdc9ee01494627a | Снимок экрана от 2019-10-01 00-32-19.png |
| 22562 | 4220 | 4065_72f4ebf7552ab3010a4f41cbb62158a0 | Снимок экрана от 2019-10-01 00-32-19.png |
+-------------+----------+---------------------------------------+--------------------------------------------------------+
2 rows in set (0.002 sec)
Лишнее удаляем:
Код: Выделить всё
MariaDB [forum]> DELETE from rlf1_attachments where real_filename = "Снимок экрана от 2019-10-01 00-32-19.png" AND topic_id = '0';
Query OK, 1 row affected (0.005 sec)
Код: Выделить всё
MariaDB [forum]> SELECT post_msg_id,topic_id,physical_filename,real_filename FROM rlf1_attachments WHERE real_filename = "Снимок экрана от 2019-10-01 00-32-19.png";
+-------------+----------+---------------------------------------+--------------------------------------------------------+
| post_msg_id | topic_id | physical_filename | real_filename |
+-------------+----------+---------------------------------------+--------------------------------------------------------+
| 22562 | 4220 | 4065_72f4ebf7552ab3010a4f41cbb62158a0 | Снимок экрана от 2019-10-01 00-32-19.png |
+-------------+----------+---------------------------------------+--------------------------------------------------------+
1 row in set (0.002 sec)
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: вложения (файлы) к сообщениям
Но ещё нужно файловую структуру посмотреть:
Код: Выделить всё
olej@277938:/var/www/linux-ru.ru/files$ pwd
/var/www/linux-ru.ru/files
olej@277938:/var/www/linux-ru.ru/files$ ls -l 4065_72f4ebf7552ab3010a4f41cbb62158a0
-rw-r--r-- 1 www-data www-data 352000 дек 22 01:23 4065_72f4ebf7552ab3010a4f41cbb62158a0
Выправляем:
Код: Выделить всё
olej@277938:/var/www/linux-ru.ru/files$ sudo rm 4065_72f4ebf7552ab3010a4f41cbb62158a0
olej@277938:/var/www/linux-ru.ru/files$ ls -l 4065_72f4ebf7552ab3010a4f41cbb62158a0
ls: невозможно получить доступ к '4065_72f4ebf7552ab3010a4f41cbb62158a0': Нет такого файла или каталога
С этим потерянным вложением (и бессмысленными 320Kb) разобрались!
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость