項目介紹
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表單代碼示例如下
軟件架構
后端框架: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
參與貢獻
-
Fork 本項目
-
新建 Feat_xxx 分支
-
提交代碼
-
新建 Pull Request
項目地址
如果項目對您有幫助,請前往項目地址給個Star !!!!
