oss-server
項(xiàng)目介紹
oss-server是針對項(xiàng)目開發(fā)時提供的小型對象存儲系統(tǒng),開發(fā)者在針對文件上傳時業(yè)務(wù)剝離,同時方便文件遷移吴藻,為滿足單個項(xiàng)目,多個系統(tǒng)的情況下胖笛,提供統(tǒng)一的oss服務(wù)
oss-server主要提供功能:
1、上傳功能
2、文件在線管理功能(包括文件的預(yù)覽、內(nèi)部上傳废恋、刪除、更名)
3摩瞎、權(quán)限管理(上傳api權(quán)限用戶維護(hù)、oss-server登錄系統(tǒng)維護(hù))
oss-server使用tomcat+nginx的方式孝常,tomcat提供上傳對象存儲的能力旗们,nginx提供在線訪問的能力
oss不提供文件相關(guān)日志存儲功能,是純技術(shù)中間件
server端主要配置(application.properties
)如下:
#素材存儲路徑 -- 以/結(jié)尾
material.root=/home/material/
#素材下載路徑根目錄,該目錄是nginx讀取目錄,可以使用域名
material.invokingRoot=http://192.168.0.7/
使用以上配置构灸,服務(wù)端nginx配置如下:
server{
listen 80;
server_name 192.168.0.7;
charset utf-8;
location / {
root /home/material/;
}
}
該配置只是簡單配置nginx訪問路徑,server_name可以是域名.
管理員預(yù)覽
輸入訪問路徑:http://ip:port/
輸入application.properties
配置文件中的用戶名密碼:
#驗(yàn)證用戶名 密碼
oss.security.userName=admin
oss.security.password=adminA123
oss-server提供以下兩種提交方式
base64字符串格式提交
該方式是后端需要將文件轉(zhuǎn)換成base64字符串,提交給oss-server上渴,該方式oss-server提供了java版的sdk,具體可參看oss-server-sdk-java
程序
請求接口:/oss/material/uploadByBinary
接口類型:post
請求類型:application/json;
請求參數(shù):
{
"project": "",
"files": [
{
"original_name": "test.png",
"file": "文件流base64字符串",
"media_type": "png"
}
]
}
字段說明:
參數(shù) | 說明 |
---|---|
project | 項(xiàng)目名稱喜颁,oss-server會根據(jù)該名稱創(chuàng)建項(xiàng)目目錄,方便后續(xù)程序遷移 |
files | 上傳文件數(shù)組 |
original_name | 文件原始名稱 |
file | 文件流base64字符串 |
media_type | 文件格式類型 |
響應(yīng)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"
}]
}
響應(yīng)參數(shù)說明
參數(shù) | 說明 |
---|---|
code | 錯誤碼,8200為成功 |
message | 錯誤信息 |
data | 上傳成功后文件返回信息 |
id | 文件唯一標(biāo)識 |
url | 文件在線訪問url |
store | 文件靜態(tài)存儲路徑 |
form表單直接提交
該方式前端可直接通過form提交上傳,后端不需要提供中轉(zhuǎn)
請求接口:/oss/material/{project}/uploadMaterial
接口類型:post
請求參數(shù):
參數(shù) | 說明 |
---|---|
project | 項(xiàng)目名稱稠氮,oss-server會根據(jù)該名稱創(chuàng)建項(xiàng)目目錄,方便后續(xù)程序遷移 |
module | 模塊名稱,可為空,很多情況下,我們希望分模塊來存儲我們的上傳資源半开,這個時候隔披,可以使用該module字段,例如:/product/wechat ,此時,oss生成的全路徑是:{project}/product/wechat/...
|
file | 上傳文件名稱寂拆,可以是數(shù)組多個文件 |
響應(yīng)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>
軟件架構(gòu)
后端框架:SpringBoot 2.0.2.RELEASE
后端模塊:freemarker
前端框架:layer+Bootstrap
安裝教程
1奢米、下載源碼:git clone https://gitee.com/xiaoym/oss-server.git
2抓韩、修改application.properties配置文件,主要修改以下oss對外域名路徑已經(jīng)上傳存儲路徑
#素材存儲路徑 -- 以/結(jié)尾
material.root=/home/material/
#素材下載路徑根目錄
material.invokingRoot=http://192.168.0.7/
3、打包:mvn package
4鬓长、運(yùn)行jar包:java -jar oss-server-0.0.1-SNAPSHOT.jar
參與貢獻(xiàn)
- Fork 本項(xiàng)目
- 新建 Feat_xxx 分支
- 提交代碼
- 新建 Pull Request
項(xiàng)目地址
如果項(xiàng)目對您有幫助,請前往項(xiàng)目地址給個Star Z怂!I娌ā英上!