До временного прекращения поддержки из-за ограничений энергии и возможностей
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 будет выглядеть так:
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. Этот метод имеет Java SDK, подробнее см. в программе 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 | Строка base64 файла |
media_type | Тип файла |
Ответ 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 | Статический путь хранения файла |
Этот метод позволяет frontend прямым образом отправлять данные через форму, без необходимости промежуточного сервера.
URL запроса: /oss/material/{project}/uploadMaterial
Тип запроса: POST
Параметры запроса:
Параметр | Описание |
---|---|
project | Название проекта, oss-server создаст директорию по этому имени для удобства последующего перемещения программы |
module | Название модуля, может быть пустым, часто мы хотим разделить наши загруженные ресурсы по модулям, в этом случае полезен параметр module, например: /product/wechat , тогда полный путь, созданный oss, будет {project}/product/wechat/...
|
file | Имя загружаемого файла, может быть массивом нескольких файлов |
Ответ 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"
}]
}
Пример кода формы:
<!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>
<iframe name="uploadIFrame" style="width: 500px;height: 500px;border: 1px solid gray;"></iframe>
</body>
</html>
Backend framework: SpringBoot 2.0.2.RELEASE
Backend modules: freemarker
Frontend framework: layer+Bootstrap
git clone https://gitee.com/xiaoym/oss-server.git
# путь к материалам -- заканчивается слешем /
material.root=/home/material/
# корневой каталог для загрузки материалов
material.invokingRoot=http://192.168.0.7/
mvn package
java -jar oss-server-0.0.1-SNAPSHOT.jar
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )