oss-server 对象存储系统

程序名称:oss-server

授权协议: Apache

操作系统: 跨平台

开发语言: Java

oss-server 介绍

oss-server 对象存储系统(Simple OSS Server)

项目介绍

oss-server是针对项目开发时提供的小型对象存储系统,开发者在针对文件上传时业务剥离,同时方便文件迁移,为满足单个项目,多个系统的情况下,提供统一的oss服务

oss-server主要提供功能:

  1. 上传功能

  2. 文件在线管理功能(包括文件的预览、内部上传、删除、更名)

  3. 权限管理(上传api权限用户维护、oss-server登录系统维护)

oss-server使用tomcat+nginx的方式,tomcat提供上传对象存储的能力,nginx提供在线访问的能力

oss不提供文件相关日志存储功能,是纯技术中间件

server端主要配置(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字符串格式提交

该方式是后端需要将文件转换成base64字符串,提交给oss-server,该方式oss-server提供了java版的sdk,具体可参看oss- server-sdk-java程序

  • 请求接口:/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: Success,
    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文件静态存储路径

form表单直接提交

该方式前端可直接通过form提交上传,后端不需要提供中转

  • 请求接口:/oss/material/{project}/uploadMaterial

  • 接口类型:post

  • 请求参数:

参数说明
project项目名称,oss-server会根据该名称创建项目目录,方便后续程序迁移
module模块名称,可为空,很多情况下,我们希望分模块来存储我们的上传资源,这个时候,可以使用该module字段,例如:`/product/wechat`,此时,oss生成的全路径是:`{project}/product/wechat/...`
file上传文件名称,可以是数组多个文件

响应json

{
    code: 8200,
    message: Success,
    data: [{
        id: 1a4c705d260647cc9be951ead3a449e6,
        url: http://192.168.0.7/province_IIII/201805/30/1a4c705d260647cc9be951ead3a449e6.jpg,
        store: /province_IIII/201805/30/1a4c705d260647cc9be951ead3a449e6.jpg
    }]
}

form表单代码示例如下

            Title

软件架构

  • 后端框架:SpringBoot 2.0.2.RELEASE

  • 后端模块:freemarker

  • 前端框架:layer+Bootstrap

安装教程

  1. 下载源码:git clone https://gitee.com/xiaoym/oss-server.git

  2. 修改application.properties配置文件,主要修改以下oss对外域名路径已经上传存储路径

    素材存储路径 – 以/结尾

    material.root=/home/material/

    素材下载路径根目录

    material.invokingRoot=http://192.168.0.7/

3、打包:mvn package

4、运行jar包:java -jar oss-server-0.0.1-SNAPSHOT.jar

参与贡献

  1. Fork 本项目

  2. 新建 Feat_xxx 分支

  3. 提交代码

  4. 新建 Pull Request

oss-server 官网

https://gitee.com/xiaoym/oss-server

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


memcached-session-manager 将session存储到memchached实现方案时。他主要功能是修改tomcat的session存储机制,使之能够把session序列化存放到memcached中。
Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。
EasyTomcat 是一个用来帮助简化 Tomcat 和MySQL 管理的系统,你可以启动、停止和配置 Tomcat和MySQL
riak-session-manager 是使用 Riak 来存储Tomcat session 信息的项目。 配置方法:
tomcat-redis-session-manager 是一个用来将 Tomcat 的 Session 数据存储在 Redis 库中的项目。
这是一款在 Oracle 的 JDeveloper 开发环境下管理Tomcat 的插件,如下图所示:
扩展Tomcat 6.x,使用redis存放session信息!是一个Eclipse项目,最好用EGit来Clone(因为里面有个中文文件名的说明文件).
dhcpcd 是一个兼容 RFC2131的DHCP客户端程序,支持DHCP的全部功能并且体积非常小,只有差不多 46k。
phpDHCPAdmin 是一个基于 Web 的动态主机配置协议(DHCP Daemon)的管理工具,可单独设置组、用户级别;PXE、多子网;空间租赁管理功能。可对数据进行可视化展示、分类。适合大规模的 dhcpd 环境管理。
JDHCP 项目的目的是为 Java 应用增加简单操作 DHCP 协议的方法,DHCP是动态主机配置协议的简称。使用这个API可以轻松的发送、接收和解析DHCP消息,可用于编写DHCP的客户端、服务器端应用。
DHCP服务器为客户端计算机分配IP地址,通常应用在企业网络中以减小配置成本,所有客户端的IP地址都保存在服务器端。
dhcp4java是一个用于操作DHCP信息包的纯Java类库。适用于DHCP服务器, DHCP客户端或DHCP转发。
dhcp-forwarder 是一个 DHCP 中继代理,它将在不同的子网广播域中转发 DHCP 广播信息。
不用看都知道是一个开源的 DHCP 服务器。 Open DHCP Server is a multi-subnet DHCP server. It supports both dynamic and
GAdmin-ProFTPD是一个基于GTK的可视化DHCP服务端管理工具。 更多的屏幕截图请看:http://mange.dynalias.org/linux/gadmin-dhcpd/screenshots/
Dual DHCP DNS Server 是一个提供 DHCP 和 DNS 服务的服务器软件,每一个功能都可以单独启用或者关闭。
Dhcpy6d 是一个开源的 DHCPv6 的服务器软件,相当于为 IPv6 客户端提供 DHCP 协议。
DHCP as a filesystem,要求 FUSE 的支持,使用 Go 语言开发。 安装: GOFUSE=github.com/hanwen/go-fuse
简易图床支持 HDFS 本地存储远端存储等。 Status Esay Graph bed Use HDFS Use Qiniu Use upyun Use Local
一个使用python开发的简单好用的 PXE (DHCP/TFTP/HTTP) 服务器,同时支持netboot、dhcp-