Да, возможно удалить файлы в Nextcloud на основе даты добавления метки. Для этого можно использовать функциональность раздела "История версий" в Nextcloud.
1. Войдите в свою учетную запись в Nextcloud.
2. Откройте файл, который вы хотите пометить для удаления.
3. Нажмите на кнопку "История версий" в верхнем меню (иконка с часовым стеком).
4. В открывшемся окне "История версий" выберите определенную версию файла, которой вы хотите добавить метку.
5. На верхней панели инструментов нажмите на кнопку "Добавить метку". Укажите название и описание метки, чтобы легко идентифицировать файлы для удаления.
6. Закройте окно "История версий".
Теперь, чтобы автоматически удалять файлы в Nextcloud, которые были загружены более 14 дней назад и имеют определенную метку, можно использовать PostgreSQL и планировщик задач cron.
1. Убедитесь, что у вас установлен PostgreSQL на сервере Nextcloud.
2. Войдите в базу данных PostgreSQL с помощью команды в терминале:
```
sudo -u postgres psql
```
3. Создайте таблицу для хранения информации о метках и файлов, подлежащих удалению, с помощью следующего SQL-запроса:
```
CREATE TABLE auto_delete (file_id int PRIMARY KEY, file_path text, label text, timestamp timestamp);
```
4. Настройте планировщик задач cron для запуска PHP-скрипта в фоновом режиме на сервере Nextcloud. Создайте новую задачу в cron с помощью команды:
```
sudo crontab -e
```
И добавьте следующую строку, чтобы запустить скрипт каждые 10 минут:
```
*/10 * * * * php -f /path/to/nextcloud/auto_delete.php
```
5. Создайте PHP-скрипт с именем "auto_delete.php" и сохраните его в каталоге "/path/to/nextcloud". В этом скрипте выполните следующий код, чтобы удалить файлы с просроченными метками:
```php
<?php
require_once '/path/to/nextcloud/config/config.php'; // Укажите полный путь до файла конфигурации Nextcloud
$config = new \OCP\Config();
$db = new \PDO($config->getSystemValue('dbhost', 'localhost'), $config->getSystemValue('dbuser', 'nextcloud'), $config->getSystemValue('dbpassword', ''), array(\PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'"));
$db->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
$db->setAttribute(\PDO::ATTR_EMULATE_PREPARES, false);
// Удаление файлов с просроченными метками
$query = $db->prepare("SELECT file_path FROM auto_delete WHERE timestamp < NOW() - INTERVAL '14 days'");
$query->execute();
$filesToDelete = $query->fetchAll(\PDO::FETCH_COLUMN);
foreach ($filesToDelete as $filePath) {
\OC_Helper::rmdirr($filePath);
}
// Удаление записей о файлах из таблицы auto_delete
$db->exec("DELETE FROM auto_delete WHERE timestamp < NOW() - INTERVAL '14 days'");
```
6. Сохраните и закройте файл "auto_delete.php".
Теперь файлы, которые были загружены более 14 дней назад и имеют определенную метку, будут автоматически удаляться с использованием PostgreSQL и запуска скрипта "auto_delete.php" через планировщик задач cron.