1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/svnee-easy-file

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
QuickStart.md 9.6 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 12.03.2025 16:45 e8971b3

Инструкция по использованию

1. Включение зависимостей Maven

Если используется локальный режим, включите зависимости 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>

2. Реализация интерфейса для загрузки файлов с клиентской стороны

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);

}

Загружайте файлы в свой сервис хранения файлов.

3. Обработка запуска Spring Boot

Добавьте аннотацию сканирования пакета 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

EasyFileUI

Восьмой раздел: Развертывание easyfile-server

При использовании Remote режима, требуется развернуть сервис easyfile-server.

Иначе развертывание не требуется.

  1. Выполнить SQL-скрипт для хранения данных DB.
  2. Развернуть сервис.

Девятый раздел: Экспорт международной поддержки

Поддержка международных особенностей

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/svnee-easy-file.git
git@api.gitlife.ru:oschina-mirror/svnee-easy-file.git
oschina-mirror
svnee-easy-file
svnee-easy-file
master