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

OSCHINA-MIRROR/xiaoym-oss-server

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

До временного прекращения поддержки из-за ограничений энергии и возможностей

Проект

oss-server — это небольшая система управления объектами, предназначенная для использования при разработке проектов. Она позволяет отделить бизнес-логику от процесса загрузки файлов, что делает миграцию файлов более удобной. Для удовлетворения потребностей одного проекта с несколькими системами она предоставляет единый сервис OSS.

Основные возможности oss-server:

  1. Возможность загрузки файлов

  2. Онлайн-управление файлами (включая просмотр, внутреннюю загрузку, удаление и переименование файлов)

  3. Управление правами доступа (поддержка пользователей 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 предлагает два способа отправки данных:

Отправка данных в формате base64

Этот метод требует, чтобы 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

Инструкция по установке

  1. Склонировать исходный код: git clone https://gitee.com/xiaoym/oss-server.git
  2. Изменить файл конфигурации application.properties, основное изменение заключается в следующих внешних доменах и путях загрузки материалов
# путь к материалам -- заканчивается слешем /
material.root=/home/material/
# корневой каталог для загрузки материалов
material.invokingRoot=http://192.168.0.7/
  1. Создание jar-пакета: mvn package
  2. Запуск jar-пакета: java -jar oss-server-0.0.1-SNAPSHOT.jar

Внесение вклада

  1. Fork этого проекта
  2. Создайте новую ветку Feat_xxx
  3. Подтвердите изменения
  4. Создайте новый Pull Request

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

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

Введение

OSS-server — это небольшая система объектного хранения, предназначенная для использования во время разработки проектов. Она позволяет разработчикам абстрагироваться от бизнес-логики при загрузке файлов и упрощает процесс миграции файлов. OSS-сервер предоставляет унифицированные OSS-сервисы для работы с несколькими системами в рамках одного проекта. Развернуть Свернуть
MIT
Отмена

Участники

все

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

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