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

OSCHINA-MIRROR/ld114631028-storage-spring-boot-starter

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

storage-spring-boot-starter

Описание

  1. Сервис хранения файлов, поддерживающий локальное хранение, minio, fastdfs, облачное хранилище Alibaba OSS и облачное хранилище Qiniu OSS.
  2. В настоящее время тестировался только для версии SpringBoot 2.7.X.

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

Введение зависимости через Maven

<dependency>
    <groupId>cn.iwenjuan</groupId>
    <artifactId>storage-spring-boot-starter</artifactId>
    <version>1.0.1-SNAPSHOT</version>
</dependency>

Добавление аннотации @EnableStorage в класс запуска

@SpringBootApplication
@EnableStorage
public class SampleApplication {
    public static void main(String[] args) {
       SpringApplication.run(SampleApplication.class, args);
    }
}

Пример конфигурации application.yml

spring:
  # Настройки загрузки файлов
  storage:
    # Максимальный размер загружаемых файлов, кб, по умолчанию 10 Мб
    maxSize: 10485760
    # Разрешенные типы файлов, по умолчанию разрешены все
    allowed: "*"
    # Запрещенные типы файлов
    deny: ".sh,.java,.class,.py,.php"
    # Платформа хранения, возможные значения: local, minio, fastdfs, aliyun, qiniu
    platform: local
    # Настройки локального хранения
    local:
      # Путь к локальному хранилищу
      path: /data/files
      # Классификация, поддерживает год (year), месяц (month), день (day)
      classify: day
    # Настройки minio
    minio:
      # Адрес minio
      endpoint: http://minio.dev:9000
      # Логин minio
      accessKey: minio账号
      # Пароль minio
      secretKey: minio秘钥
      # Имя бакета minio
      bucketName: demo
      # Путь к бакету minio
      path: /files
      # Классификация, поддерживает год (year), месяц (month), день (day)
~~~        classify: day
    # Настройки fastdfs
    fastdfs:
      # Время ожидания чтения
      so-timeout: 1000
      # Время ожидания подключения
      connect-timeout: 200
      # Список адресов конфигурации трекера
      tracker-list:
        - fastdfs. dev:22122
    # Настройки Alibaba OSS
    aliyun:
      # Адрес узла OSS
      endpoint: https://xxx. aliyuncs. com
      # accessKey
      access-key: AccessKey платформы Alibaba Cloud
      # secretKey
      secret-key: SecretKey платформы Alibaba Cloud
      # Имя бакета
      bucket-name: имя бакета
      # Путь к бакету
      path: /files
      # Классификация, поддерживает год (year), месяц (month), день (day)
      classify: day
    # Настройки Qiniu
    qiniu:
~~~```markdown
## Обратите внимание на домен для доступа к Qiniu Cloud, без его настройки невозможно реализовать функцию загрузки
```yaml
domain: http://xxx. com
# accessKey
access-key: ключ доступа Qiniu Cloud
# secretKey
secret-key: секретный ключ Qiniu Cloud
# Имя бакета
bucket-name: имя бакета
# Путь к бакету
path: /files
# Классификация, поддерживает по годам (year), месяцам (month), дням (day)
classify: day
```
### Введение класса IStorageService
```java
@Resource
private IStorageService storageService;
```
### Описание API класса IStorageService
```java
/**
* Загрузка файла
*
* @param multipartFile
* @return
*/
UploadResponse upload(MultipartFile multipartFile);
``````markdown
## Загрузка файла

### Метод `upload`

Загружает файл с использованием различных параметров.

```java
UploadResponse upload(MultipartFile multipartFile, String md5);
```

```java
UploadResponse upload(File file);
```

```java
UploadResponse upload(File file, String md5);
```

```java
UploadResponse upload(InputStream inputStream, String originalFilename, String md5, long fileSize) throws Exception;
```

### Метод `allowedToUpload`

Проверяет разрешение на загрузку файла.

```java
boolean allowedToUpload(String originalFilename);
```

### Метод `exceedMaxSize`

Проверяет, превышает ли размер файла максимальный допустимый размер.

```java
boolean exceedMaxSize(long fileSize);
```

### Метод `download`

Загружает файл в указанный поток вывода.

```java
void download(OutputStream outputStream, String objectName);
```

### Метод `delete`

Удаляет загруженный файл по указанному имени объекта.

```java
void delete(String objectName);
```

### Класс `UploadResponse` для результата загрузки

Класс `UploadResponse` содержит информацию о результате загрузки файла.

```java
private String md5; // MD5-сумма файла

private String platform; // Платформа хранения

private String fileName; // Оригинальное имя файла

private long fileSize; // Размер файла

private String fileUrl; // Путь загрузки файла

private String path; // Путь загрузки
```
``````markdown
### Для использования MinIO в качестве платформы хранения необходимо добавить соответствующие зависимости
```xml
<dependency>
 <groupId>io.minio</groupId>
 <artifactId>minio</artifactId>
 <version>8.4.3</version>
</dependency>
```xml
<dependency>
 <groupId>com.squareup.okhttp3</groupId>
 <artifactId>okhttp</artifactId>
 <version>4.9.2</version>
</dependency>
```
### Для использования FastDFS в качестве платформы хранения необходимо добавить соответствующие зависимости
```xml
<dependency>
 <groupId>com.github.tobato</groupId>
 <artifactId>fastdfs-client</artifactId>
 <version>1.27.2</version>
</dependency>
```
### Для использования OSS от Alibaba Cloud в качестве платформы хранения необходимо добавить соответствующие зависимости
```xml
<dependency>
 <groupId>com.aliyun.oss</groupId>
 <artifactId>aliyun-sdk-oss</artifactId>
 <version>3.15.1</version>
</dependency>
```
### Для использования OSS от Qiniu Cloud в качестве платформы хранения необходимо добавить соответствующие зависимости
```xml
<dependency>
 <groupId>com.qiniu</groupId>
 <artifactId>qiniu-java-sdk</artifactId>
 <version>7.7.0</version>
</dependency>
```xml
<dependency>
 <groupId>com.squareup.okhttp3</groupId>
 <artifactId>okhttp</artifactId>
 <version>4.9.2</version>
</dependency>
```

Комментарии ( 0 )

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

Введение

Сервис хранения файлов, поддерживающий локальное хранение, MinIO, FastDFS, облачное хранилище Alibaba Cloud OSS и облачное хранилище Qiniu OSS. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Язык

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/ld114631028-storage-spring-boot-starter.git
git@api.gitlife.ru:oschina-mirror/ld114631028-storage-spring-boot-starter.git
oschina-mirror
ld114631028-storage-spring-boot-starter
ld114631028-storage-spring-boot-starter
master