Если используется локальный режим, включите зависимости Maven:
<dependency>
<groupId>com.openquartz</groupId>
<artifactId>easyfile-spring-boot-starter-local</artifactId>
<version>1.4.0</version>
</dependency>
Если используется удалённый режим, включите зависимости Maven:
<dependency>
<groupId>com.openquartz</groupId>
<artifactId>easyfile-spring-boot-starter-remote</artifactId>
<version>1.4.0</version>
</dependency>
package com.openquartz.easyfile.storage.file;
import java.io.File;
import com.openquartz.easyfile.common.bean.Pair;
/**
* Интерфейс для загрузки файлов
*
* @author svnee
*/
public interface UploadService {
/**
* Загрузка файла
* Если требуется повторная попытка, выбросьте исключение GenerateFileException
*
* @param file Файл
* @param fileName Название файла, которое будет сгенерировано
* @param appId ID приложения
* @return Ключ: файловая система -> значение: URL/идентификатор файла
*/
Pair<String, String> upload(File file, String fileName, String appId);
}
Загружайте файлы в свой сервис хранения файлов.
Добавьте аннотацию сканирования пакета EnableEasyFileAutoConfiguration
в точке входа вашего приложения.
Пример:
/**
* @author svnee
**/
@SpringBootApplication
@EnableEasyFileAutoConfiguration
@MapperScan("com.openquartz.easyfile.example.mapper")
public class LocalExampleApplication {
public static void main(String[] args) {
SpringApplication.run(LocalExampleApplication.class);
}
}
```#### 4. Дополнительные настройки
Если используется локальный режим, необходимо предоставить конфигурацию клиента:
```properties
##### easyfile-local-datasource
easyfile.local.datasource.type=com.zaxxer.hikari.HikariDataSource
easyfile.local.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
easyfile.local.datasource.url=jdbc:mysql://localhost:3306/test?characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8
easyfile.local.datasource.username=root
easyfile.local.datasource.password=123456
``````sql
CREATE TABLE ef_async_download_task (
id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'ID',
task_code VARCHAR(50) NOT NULL DEFAULT '' COMMENT 'Код задачи',
task_desc VARCHAR(50) NOT NULL DEFAULT '' COMMENT 'Описание задачи',
app_id VARCHAR(50) NOT NULL DEFAULT '' COMMENT 'Идентификатор приложения (APP ID)',
unified_app_id VARCHAR(50) NOT NULL DEFAULT '' COMMENT 'Унифицированный идентификатор приложения (UNIFIED APP ID)',
enable_status TINYINT(3) NOT NULL DEFAULT 0 COMMENT 'Статус включения',
limiting_strategy VARCHAR(50) NOT NULL DEFAULT '' COMMENT 'Стратегия ограничения',
version INT(10) NOT NULL DEFAULT 0 COMMENT 'Номер версии',
create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Дата создания',
update_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Дата последнего обновления',
create_by VARCHAR(50) NOT NULL DEFAULT '' COMMENT 'Кто создал',
update_by VARCHAR(50) NOT NULL DEFAULT '' COMMENT 'Кто обновил',
is_deleted BIGINT(20) NOT NULL DEFAULT 0 COMMENT 'Удалено ли',
PRIMARY KEY (id),
UNIQUE KEY `uniq_app_id_task_code` (`task_code`, `app_id`) USING BTREE
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT 'Асинхронная задача загрузки';
CREATE TABLE ef_async_download_record (
id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Идентификатор записи',
download_task_id BIGINT(20) NOT NULL DEFAULT 0 COMMENT 'Идентификатор задачи загрузки',
app_id VARCHAR(50) NOT NULL DEFAULT '' COMMENT 'Идентификатор приложения',
download_code VARCHAR(50) NOT NULL DEFAULT '' COMMENT 'Код загрузки',
upload_status VARCHAR(50) NOT NULL DEFAULT '' COMMENT 'Статус загрузки',
file_url VARCHAR(512) NOT NULL DEFAULT '' COMMENT 'Путь к файлу',
``` file_system VARCHAR(50) NOT NULL DEFAULT '' COMMENT 'Файловая система',
download_operate_by VARCHAR(50) NOT NULL DEFAULT '' COMMENT 'Оператор загрузки',
download_operate_name VARCHAR(50) NOT NULL DEFAULT '' COMMENT 'Имя оператора загрузки',
remark VARCHAR(50) NOT NULL DEFAULT '' COMMENT 'Примечание',
notify_enable_status TINYINT(3) NOT NULL DEFAULT 0 COMMENT 'Статус включения уведомлений',
notify_email VARCHAR(50) NOT NULL DEFAULT '' COMMENT 'Электронная почта для уведомлений',
max_server_retry TINYINT(3) NOT NULL DEFAULT 0 COMMENT 'Максимальное количество попыток повторной отправки сервером',
current_retry TINYINT(3) NOT NULL DEFAULT 0 COMMENT 'Текущее количество попыток повторной отправки',
execute_param TEXT NULL COMMENT 'Параметры выполнения',
error_msg VARCHAR(256) NOT NULL DEFAULT '' COMMENT 'Сообщение об ошибке',
last_execute_time DATETIME NULL COMMENT 'Дата последнего выполнения',
invalid_time DATETIME NULL COMMENT 'Дата истечения срока действия',
download_num TINYINT(3) NOT NULL DEFAULT 0 COMMENT 'Количество загрузок',
execute_process TINYINT(3) NOT NULL DEFAULT 0 COMMENT 'Процесс выполнения',
version INT(10) NOT NULL DEFAULT 0 COMMENT 'Номер версии',
create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Дата создания записи',
update_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Дата последнего обновления записи',
create_by VARCHAR(50) NOT NULL DEFAULT '' COMMENT 'Автор создания записи',
update_by VARCHAR(50) NOT NULL DEFAULT '' COMMENT 'Автор последнего обновления записи',
PRIMARY KEY (id),
KEY `idx_download_operate_by` (`download_operate_by`) USING BTREE,
KEY `idx_operator_record` (`download_operate_by`, `app_id`, `create_time`),```sql
KEY `idx_upload_invalid` (`upload_status`, `invalid_time`, `id`)
)
``` КЛЮЧ `idx_create_time` (`create_time`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='асинхронные записи скачивания';
## Шестой раздел: Реализация загрузчика
[Загрузчик](./BaseDownloadExecutor.md)
## Седьмой раздел: Admin-управление
EasyFile предоставляет простое управление через Admin-интерфейс (@since 1.2.0). Для включения требуется добавить зависимость Maven:
```xml
<dependency>
<groupId>com.openquartz</groupId>
<artifactId>easyfile-ui</artifactId>
<version>1.2.0</version>
</dependency>
Адрес мониторинга сервиса: ip+порт/easyfile-ui/, например: localhost:8080/easyfile-ui/
. По умолчанию учетные данные пользователя Admin: admin/admin
.
Если требуется изменение, можно конфигурировать следующим образом:
easyfile.ui.admin.username=admin
easyfile.ui.admin.password=admin
Управление EasyFile UI
При использовании Remote режима, требуется развернуть сервис easyfile-server.
Иначе развертывание не требуется.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )