oss-server 小型對象存儲系統(tǒng)

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
image
image

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)

  1. Fork 本項(xiàng)目
  2. 新建 Feat_xxx 分支
  3. 提交代碼
  4. 新建 Pull Request

項(xiàng)目地址

如果項(xiàng)目對您有幫助,請前往項(xiàng)目地址給個Star Z怂!I娌ā英上!

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

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市啤覆,隨后出現(xiàn)的幾起案子苍日,更是在濱河造成了極大的恐慌,老刑警劉巖城侧,帶你破解...
    沈念sama閱讀 222,378評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件易遣,死亡現(xiàn)場離奇詭異,居然都是意外死亡嫌佑,警方通過查閱死者的電腦和手機(jī)豆茫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來屋摇,“玉大人揩魂,你說我怎么就攤上這事∨谖拢” “怎么了火脉?”我有些...
    開封第一講書人閱讀 168,983評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長柒啤。 經(jīng)常有香客問我倦挂,道長,這世上最難降的妖魔是什么担巩? 我笑而不...
    開封第一講書人閱讀 59,938評論 1 299
  • 正文 為了忘掉前任方援,我火速辦了婚禮,結(jié)果婚禮上涛癌,老公的妹妹穿的比我還像新娘犯戏。我一直安慰自己,他們只是感情好拳话,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,955評論 6 398
  • 文/花漫 我一把揭開白布先匪。 她就那樣靜靜地躺著,像睡著了一般弃衍。 火紅的嫁衣襯著肌膚如雪呀非。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,549評論 1 312
  • 那天镜盯,我揣著相機(jī)與錄音姜钳,去河邊找鬼坦冠。 笑死,一個胖子當(dāng)著我的面吹牛哥桥,可吹牛的內(nèi)容都是我干的辙浑。 我是一名探鬼主播,決...
    沈念sama閱讀 41,063評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼拟糕,長吁一口氣:“原來是場噩夢啊……” “哼判呕!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起送滞,我...
    開封第一講書人閱讀 39,991評論 0 277
  • 序言:老撾萬榮一對情侶失蹤侠草,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后犁嗅,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體边涕,經(jīng)...
    沈念sama閱讀 46,522評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,604評論 3 342
  • 正文 我和宋清朗相戀三年褂微,在試婚紗的時候發(fā)現(xiàn)自己被綠了功蜓。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,742評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡宠蚂,死狀恐怖式撼,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情求厕,我是刑警寧澤著隆,帶...
    沈念sama閱讀 36,413評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站呀癣,受9級特大地震影響美浦,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜项栏,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,094評論 3 335
  • 文/蒙蒙 一浦辨、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧忘嫉,春花似錦荤牍、人聲如沸案腺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,572評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽劈榨。三九已至访递,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間同辣,已是汗流浹背拷姿。 一陣腳步聲響...
    開封第一講書人閱讀 33,671評論 1 274
  • 我被黑心中介騙來泰國打工惭载, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人响巢。 一個月前我還...
    沈念sama閱讀 49,159評論 3 378
  • 正文 我出身青樓描滔,卻偏偏與公主長得像,于是被迫代替她去往敵國和親踪古。 傳聞我的和親對象是個殘疾皇子含长,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,747評論 2 361

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)伏穆,斷路器拘泞,智...
    卡卡羅2017閱讀 134,714評論 18 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,312評論 25 707
  • 登高洞見境中天,縹緲煙云似羽翩枕扫。 日色灼灼凝浩氣陪腌,松間愿做一神仙。
    蕭竺閱讀 472評論 0 1
  • 今天媽媽告訴了我一個壞消息烟瞧。她被領(lǐng)導(dǎo)批評了诗鸭。我很傷心,也很難過燕刻。因?yàn)槲也蝗绦淖寗e人懲罰我媽媽只泼。我的媽媽是一個了不起...
    格格的歌閱讀 154評論 0 0
  • 雨落123閱讀 292評論 0 0