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 выглядит следующим образом:

```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. Для этого способа 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

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

  1. Скачайте исходный код: git clone https://gitee.com/xiaoym/oss-server.git

  2. Измените файл конфигурации application.properties, в частности, укажите внешний домен для OSS и путь к хранилищу загруженных файлов.

# Путь к хранилищу материалов -- должен заканчиваться на /
material.root=/home/material/
# Корневой URL для загрузки материалов
material.invokingRoot=http://192.168.0.7/
  1. Соберите проект: 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-сервисы для работы с несколькими системами в рамках одного проекта. Развернуть Свернуть
Java и 4 других языков
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