Files
crm.clientright.ru/crm_extensions/file_storage/api/index_file.php
Fedor 269c7ea216 feat: OnlyOffice Standalone integration with S3 direct URLs
 ЧТО СДЕЛАНО:
- Поднят новый standalone OnlyOffice Document Server (порт 8083)
- Настроен Nginx для доступа через office.clientright.ru:9443
- Создан open_file_v3_standalone.php для работы с новым OnlyOffice
- Реализована поддержка прямых S3 URL (bucket публичный)
- Добавлен s3_proxy.php с поддержкой Range requests
- Создан onlyoffice_callback.php для сохранения (базовая версия)
- Файлы успешно открываются и загружаются!

⚠️ TODO (на завтра):
- Доработать onlyoffice_callback.php для сохранения обратно в ОРИГИНАЛЬНЫЙ путь в S3
- Добавить Redis маппинг documentKey → S3 path
- Обновить CRM JS для использования open_file_v3_standalone.php
- Протестировать сохранение файлов
- Удалить тестовые файлы

📊 РЕЗУЛЬТАТ:
- OnlyOffice Standalone РАБОТАЕТ! 
- Файлы открываются напрямую из S3 
- Редактор загружается БЫСТРО 
- Автосохранение настроено  (но нужна доработка callback)
2025-11-01 01:02:03 +03:00

41 lines
949 B
PHP

<?php
/**
* Быстрая индексация одного файла в Nextcloud
*/
header('Content-Type: application/json');
$input = json_decode(file_get_contents('php://input'), true);
$path = $input['path'] ?? '';
if (empty($path)) {
echo json_encode(['success' => false, 'error' => 'Missing path']);
exit;
}
// Формируем Nextcloud путь
$ncPath = '/admin/files/crm/' . $path;
// Запускаем сканирование
$command = "docker exec -u www-data nextcloud-fresh php occ files:scan --path=" . escapeshellarg($ncPath) . " 2>&1";
exec($command, $output, $returnCode);
if ($returnCode === 0) {
echo json_encode([
'success' => true,
'message' => 'File indexed successfully',
'output' => implode("\n", $output)
]);
} else {
echo json_encode([
'success' => false,
'error' => 'Indexing failed',
'output' => implode("\n", $output)
]);
}
?>