Слияние кода завершено, страница обновится автоматически
<dependency>
<groupId>cn.iwenjuan</groupId>
<artifactId>storage-spring-boot-starter</artifactId>
<version>1.0.1-SNAPSHOT</version>
</dependency>
@SpringBootApplication
@EnableStorage
public class SampleApplication {
public static void main(String[] args) {
SpringApplication.run(SampleApplication.class, args);
}
}
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 )