В связи с ограничениями моих возможностей, я временно прекращаю поддержку этого проекта
oss-server — это небольшая система хранения объектов, предназначенная для использования при разработке проектов. Разработчики могут использовать её для разделения бизнес-логики при загрузке файлов, а также для удобства перемещения файлов. Она предоставляет единый сервис OSS для одного проекта или нескольких систем.
Основные функции oss-server:
Функция загрузки файлов
Функция управления файлами в режиме реального времени (включая предварительный просмотр файлов, внутреннюю загрузку, удаление и переименование)
Управление правами доступа (управление пользователями с правом доступа к API загрузки, управление системой входа в oss-server)
oss-server использует конфигурацию tomcat+nginx. Tomcat предоставляет возможность загрузки объектов, а nginx обеспечивает доступ к файлам в режиме реального времени.
OSS не предоставляет функции хранения логов файлов, являясь чистым техническим middleware.
Основные конфигурации сервера (application.properties
) включают:
# Путь к хранению материалов -- заканчивается на /
material.root=/home/material/
# Корневой путь для загрузки материалов, это путь, который читает nginx, может быть использован доменное имя
material.invokingRoot=http://192.168.0.7/
```С использованием вышеуказанной конфигурации, конфигурация сервера nginx выглядит следующим образом:
```nginx
server{
listen 80;
server_name 192.168.0.7;
charset utf-8;
location / {
root /home/material/;
}
}
Эта конфигурация представляет собой простую настройку пути доступа nginx, server_name может быть доменным именем.
Введите путь доступа: http://ip:port/
Введите имя пользователя и пароль из файла конфигурации application.properties
:
# Имя пользователя и пароль для проверки
oss.security.userName=admin
oss.security.password=adminA123
oss-server предоставляет два способа отправки данных:
Этот способ требует, чтобы backend преобразовал файлы в base64 строки и отправил их в oss-server. Для этого способа oss-server предоставляет SDK на Java, подробнее можно посмотреть в программе oss-server-sdk-java
.
URL запроса: /oss/material/uploadByBinary
Тип запроса: post
Тип запроса: application/json;
Параметры запроса:
{
"project": "",
"files": [
{
"original_name": "test.png",
"file": "строка base64 файла",
"media_type": "png"
}
]
}
```**Описание полей**:
| Параметр | Описание |
| ----------------- | ------------------------------------------------------------ |
| project | Имя проекта, на основе которого oss-server создает проектную директорию, что облегчает последующее перемещение программ. |
| files | Массив загруженных файлов. |
| original_name | Оригинальное имя файла. |
| file | Баз64-строка файла. |
| media_type | Тип формата файла. |
**Ответ JSON**```json
{
"code": "8200",
"message": "Успех",
"data": [{
"id": "1a4c705d260647cc9be951ead3a449e6",
"url": "http://192.168.0.7/province_IIII/201805/30/1a4c705d260647cc9be951ead3a449e6.jpg",
"store": "/province_IIII/201805/30/1a4c705d260647cc9be951ead3a449e6.jpg"
}]
}
Параметры ответа
Параметр | Описание |
---|---|
code | Код ошибки, 8200 означает успех |
message | Текст ошибки |
data | Информация о файле после успешной загрузки |
id | Уникальный идентификатор файла |
url | URL для доступа к файлу онлайн |
store | Статический путь хранения файла |
Этот способ позволяет фронтенду отправлять файлы напрямую через форму, без необходимости использования промежуточного сервера.
Запрашиваемый URL: /oss/material/{project}/uploadMaterial
Тип запроса: POST
Параметры запроса:
Параметр | Описание |
---|---|
project | Название проекта, на основе которого сервер oss-server создает проектный каталог для удобства последующего переноса программ |
module | Название модуля, может быть пустым, часто мы хотим хранить наши загруженные ресурсы по модулям, в этом случае можно использовать поле module, например: /product/wechat , тогда полный путь, созданный сервером, будет выглядеть так: {project}/product/wechat/...
|
file | Имя загружаемого файла, может быть массивом нескольких файлов |
{
"code": "8200",
"message": "Успех",
"data": [{
"id": "1a4c705d260647cc9be951ead3a449e6",
"url": "http://192.168.0.7/province_IIII/201805/30/1a4c705d260647cc9be951ead3a449e6.jpg",
"store": "/province_IIII/201805/30/1a4c705d260647cc9be951ead3a449e6.jpg"
}]
}
Пример кода формы
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<title>Заголовок</title>
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
</head>
<body>
<form action="http://192.168.0.7:18000/oss/material/province_III/uploadMaterial" method="post" enctype="multipart/form-data" target="uploadIFrame">
<input type="file" name="file" value="Выберите файл"/>
<input type="submit" value="Отправить"/>
</form>
</body>
</html>
Backend framework: SpringBoot 2.0.2.RELEASE
Backend модули: freemarker
Frontend framework: layer+Bootstrap
Скачайте исходный код: git clone https://gitee.com/xiaoym/oss-server.git
Измените файл конфигурации application.properties, в частности, укажите внешний домен для OSS и путь к хранилищу загруженных файлов.
# Путь к хранилищу материалов -- должен заканчиваться на /
material.root=/home/material/
# Корневой URL для загрузки материалов
material.invokingRoot=http://192.168.0.7/
Соберите проект: mvn package
Запустите jar-файл: java -jar oss-server-0.0.1-SNAPSHOT.jar
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )