Mobiaaa

Рейтинг
138
Регистрация
17.09.2016
LEOnidUKG #:

Ссылка должна привязана быть к пользователю. Это защита, чтобы не делились ссылками.

Через час ссылка умирает и пока физически человек её не запросит, файл не будет доступен.

Без проблем

Пишем в базу ключ=>имя файла

down.php?hash=какой-то_одноразовый_ключ

Через час с базы удаляем

По Вашему же примеру, можно в момент старта скачивания продлевать таймер на час

Можно к IP привязать скачивание, хоть к времени суток или фазе луны

К авторизации на сайте тоже можно привязаться

На что фантазии хватит

в файловую систему вообще не лезем, и через php файлы не отдаём

LEOnidUKG #:

Поправьте меня конечно:

И какой смысл? Суть то в том, чтобы файлы вообще были доступны временно для всех. Мы тут не меняем 1 название файла на другое.

Хотите постоянную ссылку - пожалуйста

/down.php?id=1

А скрипт уже через заголовок редиректит на /data/files.zip к примеру

По прямому адресу  /data/files.zip - доступа не будет, только через down.php

iccup #:

Ну, и скрипт для удаления -

Зачем так сложно то?

Если цель контролировать/скрыть реальный адрес файла, то nginx понимает заголовок  X-Accel-Redirect c помощью которого можно скрыто перенаправить скачивание на реальный адрес файла

Реальный адрес файла закрываем опцией internal, и по прямой ссылке будет ошибка 404

https://nginx.org/ru/docs/http/ngx_http_core_module.html#internal

Могли набежать боты/спаммеры/ддосеры и т.д.

Apache/php-fpm выделил много процессов, дабы всех обслужить

Памяти стало мало и oom kiiler отстрелил mysql как самого жирного

Решение простое

Правильное: Настроить лимиты на количество процессов/воркеров apache/php-fpm

Менее правильный вариант (но проще): Понизить коэффициент начисления очков для Mysql (oom_adj опция), тогда mysql будет позже остальных завершаться, и с большей вероятностью oom killer убъёт какой-то php процесс, что уже менее болезненно, чем отключённая БД

Вы серьёзно думаете, что на шареде Вам дадут 100% утилизировать NVME ?

А остальные XXX клиентов будут ждать, пока Вы запишете/прочитаете

https://rpms.remirepo.net/wizard/

remi позволяет обновить php как основную версию так и остановить дополнительные

proxy_pass http://192.168.50.101:80;

Второй nginx будет в $scheme видеть http

На втором nginx  X-Forwarded-Proto нужно не $scheme передавать, а  $http_x_forwarded_proto

iccup #:

числа разные

В Ваших примерах нет логики для работы регулярки

Откуда map узнает, на какое новое число редиректить?

LEOnidUKG #:

Судя по логам, ошибка появилась в 31 версии и была пофикшена в 32

https://bugs.mysql.com/bug.php?id=109685

8.0.33

Fixed as of the upcoming MySQL Server 5.7.42 / 8.0.33 releases

Текущая версия в репозиториях 8.0.32

SeVlad #:
mysqldump: Couldn't execute 'FLUSH TABLES': Access denied

Я что-то провтыкал ошибку, смотрел сразу Ваши ссылки, в частности доку на mysqldump

security фикс тут не причём, связанный с tablespace

Возможно в этом дело

https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html#option_mysqldump_single-transaction

===========

The RELOAD or FLUSH_TABLES privilege is required with --single-transaction  if both gtid_mode=ON and --set-gtid=purged=ON|AUTO. This requirement was added in MySQL 8.0.32.

============

Проверьте Выше указанные опции и версию mysql

Собственно я проверил на mysql  Ver 8.0.30

Те же опции вызова mysqldump под юзером БД

Дамп проходит без проблем и ошибок нет

Всего: 1072