oss-server 小型對象存儲系統


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表單代碼示例如下

<!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</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>

軟件架構

后端框架: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

項目地址

如果項目對您有幫助,請前往項目地址給個Star !!!!

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

GitHub:https://github.com/xiaoymin/oss-server


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM