Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
dmitry07

Uploads почистить

Рекомендованные сообщения

Здравствуйте

Прошу помочь мне с таким вопросом...

Поиском не нашел...

IPB 4, официальная.

Помнится в старых версия можно было удалить вложения, которые не прикреплены к сообщениям. В админке была такая функция.. В 4 версии этого нету.

В связи с тем, что пришлось восстанавливать uploads, там сейчас находится много лишних файлов.

Как бы их по удалять ....

Поделиться сообщением


Ссылка на сообщение

Файлы где находятся, в корне?

Поделиться сообщением


Ссылка на сообщение

В uploads и затем папки по месяцам... думаю в uploads/ тоже есть лишнего

Поделиться сообщением


Ссылка на сообщение

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

Поделиться сообщением


Ссылка на сообщение

Функция запускается кнопкой в System -> Files -> Remove Orphaned Files, но она временно отключена в связи с необходимостью ее доработки.

 

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

 

require_once 'init.php';
\IPS\Dispatcher\Front::i();

$engine = \IPS\Application::allExtensions( 'core', 'FileStorage', FALSE )['core_Attachment'];
$dir    = 'uploads';

if ( is_dir( $dir ) )
{
$iterator = new \RecursiveIteratorIterator( new \RecursiveDirectoryIterator( $dir, \FilesystemIterator::SKIP_DOTS | \FilesystemIterator::UNIX_PATHS ) );

foreach( $iterator as $f )
{
	/* We aren't checking directories */
	if( $f->isDir() OR $f->getFilename() == 'index.html' OR mb_substr( $f->getFilename(), 0, 1 ) === '.' OR mb_substr( $iterator->getSubPathname(), 0, 5 ) === 'logs/' )
	{
		continue;
	}

	if( ! preg_match( '/^monthly_(\d+)_(\d+)\//', $iterator->getSubPathname() ) )
	{
		continue;
	}

	try
	{
		if( $engine->isValidFile( $iterator->getSubPathname() ) )
		{
			continue;
		}
	}
	catch( \InvalidArgumentException $e )
	{
		continue;
	}

	@unlink( $f->getPathName() );
	echo "Deleted {$f->getPathName()}<br>\n";
}
}

  • Upvote 2

Поделиться сообщением


Ссылка на сообщение

Создал файл php в корне с содержимым, но не запускает (вылазит в браузере код), и через ссш аналогично.

Как правильно запустить скрипт? и есть ли возможность сделать перерасчет уже существующих вложений, то есть 3 папки по 4 гига, которые освободить нужно)

Поделиться сообщением


Ссылка на сообщение
но она временно отключена в связи с необходимостью ее доработки.
Она уже 2 года отключена, все никак не доработают
Создал файл php в корне с содержимым

 

А тег <?php не забыл?

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

Спасибо, добавил, но эффекта не дало.

Поделиться сообщением


Ссылка на сообщение

\IPS\Dispatcher\Front::i();

заменить на

\IPS\Dispatcher\External::i();

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
05/31/17 11:10 (изменено)

Спасибо! Отлично обработало, но зацепило аватарки многим, удалило все вложения с галереи.

Подняли бэкап

Изменено пользователем Атаман

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...