From 618ac9731b3a944483469e0b50d1c0231ee0d006 Mon Sep 17 00:00:00 2001 From: ixyxj Date: Sat, 18 Jan 2020 15:58:33 +0800 Subject: [PATCH 1/3] local start --- .gitignore | 29 ++++ database/v1.2/oss.sql | 131 ++++++++++++++++++ oss-server/pom.xml | 11 +- .../xiaominfo/oss/OssServerApplication.java | 1 - .../oss/module/model/OSSStatisticDay.java | 1 + .../src/main/resources/application.properties | 77 +++++----- oss-server/src/main/resources/db/oss.db | Bin 45056 -> 61440 bytes pom.xml | 10 +- 8 files changed, 214 insertions(+), 46 deletions(-) create mode 100644 .gitignore create mode 100644 database/v1.2/oss.sql diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4db8c31 --- /dev/null +++ b/.gitignore @@ -0,0 +1,29 @@ +# Created by .ignore support plugin (hsz.mobi) +### Java template +# Compiled class file +*.class + +# Log file +*.log + +# BlueJ files +*.ctxt + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* + +.idea +*.iml + diff --git a/database/v1.2/oss.sql b/database/v1.2/oss.sql new file mode 100644 index 0000000..d2d2c74 --- /dev/null +++ b/database/v1.2/oss.sql @@ -0,0 +1,131 @@ +PRAGMA foreign_keys=OFF; +BEGIN TRANSACTION; +CREATE TABLE IF NOT EXISTS "oss_sys_user" ( + + "id" text NOT NULL, + + "username" TEXT, + + "password" TEXT, + + "create_time" TEXT, + + "intro" TEXT, + + PRIMARY KEY ("id") + +); +CREATE TABLE IF NOT EXISTS "oss_information" ( + + "id" text NOT NULL, + + "root" TEXT, + + "invoking_root" TEXT, + + "nginx_log_path" TEXT, + + "create_time" TEXT, + + "modified_time" TEXT, + + PRIMARY KEY ("id") + +); +CREATE TABLE IF NOT EXISTS "oss_material_info" ( + + "id" text NOT NULL, + + "original_name" TEXT, + + "store_path" TEXT, + + "url" TEXT, + + "user_id" text, + + "type" TEXT, + + "byte_str" TEXT, + + "len" integer, + + "create_time" TEXT, + + "last_modified_time" TEXT NOT NULL, + + "app_id" text, + + "from_ip" TEXT, + + PRIMARY KEY ("id", "last_modified_time") + +); +CREATE TABLE IF NOT EXISTS "oss_developer" ( + + "id" text NOT NULL, + + "name" TEXT, + + "appid" text, + + "appsecret" TEXT, + + "email" TEXT, + + "create_time" TEXT, + + "tel" TEXT, + + "intro" TEXT, + + "status" TEXT, + + "use_space" integer, + + "use_space_str" TEXT, + + PRIMARY KEY ("id") + +); +CREATE TABLE IF NOT EXISTS "oss_app_info" ( + + "id" text NOT NULL, + + "name" TEXT, + + "code" TEXT, + + "create_time" TEXT, + + "intro" TEXT, + + "dev_id" text, + + "use_space" integer, + + "use_space_str" TEXT, + + PRIMARY KEY ("id") + +); +CREATE TABLE IF NOT EXISTS "oss_statistic_day" ( + + "id" text NOT NULL, + + "create_time" TEXT, + + "files" integer, + + "use_spaces" integer, + + "cur_date" TEXT, + + "modified_time" TEXT, + + "user_id" text, + + PRIMARY KEY ("id") + +); +--COMMIT; diff --git a/oss-server/pom.xml b/oss-server/pom.xml index f4f0a8c..5ef1487 100644 --- a/oss-server/pom.xml +++ b/oss-server/pom.xml @@ -146,11 +146,18 @@ druid 1.1.9 - + com.oracle ojdbc6 - 10.2.0.1.0 + 11.2.0.3 + test + + + + org.xerial + sqlite-jdbc + 3.30.1 diff --git a/oss-server/src/main/java/com/xiaominfo/oss/OssServerApplication.java b/oss-server/src/main/java/com/xiaominfo/oss/OssServerApplication.java index 739901c..de2c0f7 100644 --- a/oss-server/src/main/java/com/xiaominfo/oss/OssServerApplication.java +++ b/oss-server/src/main/java/com/xiaominfo/oss/OssServerApplication.java @@ -17,7 +17,6 @@ import java.net.UnknownHostException; @SpringBootApplication @EnableScheduling -@ComponentScan(basePackages = {"com.xiaominfo.oss"}) public class OssServerApplication { private final static Log log = LogFactory.get(); diff --git a/oss-server/src/main/java/com/xiaominfo/oss/module/model/OSSStatisticDay.java b/oss-server/src/main/java/com/xiaominfo/oss/module/model/OSSStatisticDay.java index 89cddc5..73a96fa 100644 --- a/oss-server/src/main/java/com/xiaominfo/oss/module/model/OSSStatisticDay.java +++ b/oss-server/src/main/java/com/xiaominfo/oss/module/model/OSSStatisticDay.java @@ -42,6 +42,7 @@ public class OSSStatisticDay extends Model { @TableField(value = "use_spaces") private Long useSpaces; + @TableField(exist = false) private Integer files; diff --git a/oss-server/src/main/resources/application.properties b/oss-server/src/main/resources/application.properties index 1603cee..086c10a 100644 --- a/oss-server/src/main/resources/application.properties +++ b/oss-server/src/main/resources/application.properties @@ -1,72 +1,79 @@ # ----------------------------------------------------------------------------------------------------------------# -# oss-server 基础配置 # +# oss-server 鍩虹閰嶇疆 # # ----------------------------------------------------------------------------------------------------------------# server.port=18000 spring.application.name=OSS Server Application v1.0 -#文件传输端口 +#鏂囦欢浼犺緭绔彛 material.masterPort=18001 -#文件集群配置 +#鏂囦欢闆嗙兢閰嶇疆 material.nodes=172.30.45.2:18001 -#素材存储路径 -- 以/结尾 +#绱犳潗瀛樺偍璺緞 -- 浠/缁撳熬 material.root=/home/material/ -#素材下载路径根目录 +#绱犳潗涓嬭浇璺緞鏍圭洰褰 material.invokingRoot=http://192.168.0.7/ -#路径方式:R(相对路径+文件名),N(文件名) +#璺緞鏂瑰紡:R(鐩稿璺緞+鏂囦欢鍚),N(鏂囦欢鍚) material.pathstyle=R -## 过滤上传文件格式,大小写忽略 +## 杩囨护涓婁紶鏂囦欢鏍煎紡,澶у皬鍐欏拷鐣 material.excludeFileTypes=sh,jsp,php,exe,asp,dll # ----------------------------------------------------------------------------------------------------------------# -# spring jackson 时间配置 # +# spring jackson 鏃堕棿閰嶇疆 # # ----------------------------------------------------------------------------------------------------------------# spring.jackson.date-format=yyyy-MM-dd HH:mm:ss spring.jackson.joda-date-time-format=yyyy-MM-dd HH:mm:ss spring.jackson.time-zone=GMT+8 # ----------------------------------------------------------------------------------------------------------------# -# oss 日志配置 # +# oss 鏃ュ織閰嶇疆 # # ----------------------------------------------------------------------------------------------------------------# logging.config=classpath:logback-oss.xml # ----------------------------------------------------------------------------------------------------------------# -# multipart 上传配置 # +# multipart 涓婁紶閰嶇疆 # # ----------------------------------------------------------------------------------------------------------------# spring.servlet.multipart.enabled=true spring.servlet.multipart.max-file-size=1024MB spring.servlet.multipart.max-request-size=1024MB # ----------------------------------------------------------------------------------------------------------------# -# freemarker模板框架配置 # +# freemarker妯℃澘妗嗘灦閰嶇疆 # # ----------------------------------------------------------------------------------------------------------------# spring.freemarker.suffix=.html spring.freemarker.enabled=true spring.freemarker.cache=false -#用于解决前端报空指针问题 +#鐢ㄤ簬瑙e喅鍓嶇鎶ョ┖鎸囬拡闂 spring.freemarker.settings.classic_compatible=true -#获取根路径 +#鑾峰彇鏍硅矾寰 spring.freemarker.request-context-attribute=request -#验证用户名 密码 +#楠岃瘉鐢ㄦ埛鍚 瀵嗙爜 oss.security.userName=admin oss.security.password=adminA123 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource -spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver -spring.datasource.url=jdbc:oracle:thin:@172.30.45.2:1521:z45db2 -#spring.datasource.url=jdbc:sqlite:classpath:resource:\\db\\datashare.db -spring.datasource.username=111 -spring.datasource.password=111 -#spring.datasource.platform=sqlite -spring.datasource.min-idle=3 -spring.datasource.initial-size=3 -spring.datasource.max-active=20 -spring.datasource.max-wait=60000 -spring.datasource.time-between-eviction-runs-millis=600000 -spring.datasource.min-evictable-idle-time-millis=30000 -spring.datasource.validation-query=select 1 from dual -spring.datasource.test-while-idle=true -spring.datasource.test-on-borrow=false -spring.datasource.test-on-return=false -spring.datasource.pool-prepared-statements=true -spring.datasource.max-pool-prepared-statement-per-connection-size=20 +#spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver +spring.datasource.platform=sqlite +spring.datasource.driver-class-name=org.sqlite.JDBC +#spring.datasource.url=jdbc:oracle:thin:@172.30.45.2:1521:z45db2 +spring.datasource.url=jdbc:sqlite:classpath:resource:\\db\\oss.db +spring.datasource.hikari.minimum-idle=5 +spring.datasource.hikari.maximum-pool-size=100 +spring.datasource.hikari.auto-commit=true +spring.datasource.hikari.idle-timeout=60000 +spring.datasource.hikari.maxLifetime=60000 +spring.datasource.hikari.connection-timeout=5000 +#spring.datasource.username=111 +#spring.datasource.password=111 +#spring.datasource.hikari.min-idle=3 +#spring.datasource.initial-size=3 +#spring.datasource.max-active=20 +#spring.datasource.max-wait=60000 +#spring.datasource.time-between-eviction-runs-millis=600000 +#spring.datasource.min-evictable-idle-time-millis=30000 +#spring.datasource.validation-query=select 1 from dual +#spring.datasource.test-while-idle=true +#spring.datasource.test-on-borrow=false +#spring.datasource.test-on-return=false +#spring.datasource.pool-prepared-statements=true +#spring.datasource.max-pool-prepared-statement-per-connection-size=20 #spring.datasource.connection-properties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 spring.datasource.filters=stat,wall,slf4j -## mybatis-plus 配置文件 +## mybatis-plus 閰嶇疆鏂囦欢 mybatis-plus.mapper-locations=classpath:/com/xiaominfo/oss/module/dao/mappings/*Mapper.xml mybatis-plus.type-aliases-package=com.xiaominfo.oss.module.model -## 日志输出 -mybatis-plus.configuration.log-impl=com.xiaominfo.oss.extend.mybatis.MybatisStdOutImpl +## 鏃ュ織杈撳嚭 +mybatis-plus.configuration.log-impl=com.xiaominfo.oss.extend.mybatis.MybatisStdOutImpl \ No newline at end of file diff --git a/oss-server/src/main/resources/db/oss.db b/oss-server/src/main/resources/db/oss.db index 4f233efb30746d69529cd2c914e549a32684d94b..143de855dc8151d1af9f9ff083b94ed5cd2f0b0d 100644 GIT binary patch literal 61440 zcmeI(!Ef7C9KdnAYm+o-QaE`RB+F9OO|7WV4iiF16qEyMH@cEZ?0_sUc_~jMcCek% zUXa$p6=~=F3BcdLnIr!P;>?lfI5vr2l2!E7`5Wme@q4c0-{<#xFR`3{`Q%u}!tMv* z(2MN{#yf^-8lTvNnQ;`y%e{{BgG`yXSg`pRhiwf%eZ z*Vb>1Kbo@sQRC;@-}SZXtJ*KE*R9tpj=>ND2q1t!X$4y2%AeN3fq8Wld(Q_Vh$1(N zy;w%E?7BVgLhERKcG^DdwC&E}r^jvE(Z(J7Ub9)ZZAbPTI~M1${rHQH{rKte@qXIh z4TTpAH*^!jaj4EOoNqfL7khC4k{A>OoiVZiyZLN`moesj`!a{BqB z!_#N>QTv&FFUipTr2qcmR>gXHU>efziSy{Yf%@L!dgC~lY`a>D-4C>`*5$jKRcmL* zyb?LCHyXLp?+3}w+3UJanhhm|lb(5Y(leEl4*1@GHIw#qgI-<%(;mINrbqSTFvuz{ z?dpjaMIk3o!AvQpd*>r+hJWYM_<9IG)M+`kVnD1Iz?6D~9sU~?b7s;wKR`Wky z5enir&&7weiuGuBRW5S4G#UBk=GA)}lXc@KnP)?NqZgs{26=tYbyW1M%#B|oGeIcN zq_5sUFZn1ALg9|Q_?rS&SU^_wsx1Icd@(9anCBO2wihef8367sc*^rAV8= zlM0`HE@bu94}+mAM{~hw6Kdaf7QD%H^{TvS^_tU9(>vEyefh(ks{aJC@jOB1pn7pp%3K3=a_ zPxe+#kC_lt!I_SYmnY_A^}p=qe$hqbCKWjOsF=Q9)8(?=uECZZO`i@UFN(eoLRD0= zE5}k9edW<=Ev>4DYj0Y-vr|twvaLJnt7I+tI+| z0^I*ELzamV0R#|0009ILKmY**5I~^p0{s7f*(-qf5kLR|1Q0*~0R#|0009KbAi(|q zGGv(;5kLR|1Q0*~0R#|0009KbF2Mc&vR44{BY*$`2q1s}0tg_000Ib9@M*sl?5I_I{1Q0*~0R#{zg8=vc%aCPaL;wK< z5I_I{1Q0*~0R#{zy8!q9%U%J*j{pJ)Abp!j{>zep@w*ogN7JQjGFj)7xRdah$}? z@DqA#>3P5eO}7a;m2JW~|JjwSh{tE>D;gnpG5 zc#-~;V{|?kEhE}8>E~Gv$V?2 znQ%i|>Avv$qpHfkZO|W5oEPYCY0+(S#LC)^!SbQ0Td;{n`(a``XtZRXqV1TYL2Zm2 z-KfVDf)2=EPIA~9t5ZEBNXNt(O*4@dQw+;TPy;z@F6*ygoUuk|S)TQ-1Th!w6(eF- z4)~+-IDhh-mc%(40TH?{hFtP2BZsZlcxPt7sOF%tv7sh3hRCdu%n}J28fXthW|##N zNZNQnNVlb1?%X^p1(BXg`Ny76n-kpicDB8Jp6)#Yt0uBB)(wK1x?%0wV~X#=lTxu# zQYyurM;crlQ3vq;@@l%APG_t6Y7VCA z8ibjQmf0<2VJe-@!zwIfb6P#8?%7SGHX%Wd0Zny}kk+QEYK2rn+sG%9iJYpov7?%H zjd}Y|g2@f6!deYsoM3V)spZ#`8|zw5(UO}Pjs15fY}w7UCNfqYTyo%&A$|vo3!ZY| He{g>Q_KF-x diff --git a/pom.xml b/pom.xml index 5677bc5..1c71f7d 100644 --- a/pom.xml +++ b/pom.xml @@ -55,17 +55,11 @@ + org.apache.maven.plugins maven-source-plugin - - - attach-sources - - jar - - - + 3.2.1 -- Gitee From de1b2ff987fef05b18c6fefbb16d416941f7334a Mon Sep 17 00:00:00 2001 From: ixyxj Date: Sat, 18 Jan 2020 22:21:54 +0800 Subject: [PATCH 2/3] global Varibles --- oss-server/pom.xml | 5 ++ .../oss/config/FreeMarkerConfig.java | 47 +++++++++++++++++++ .../src/main/resources/application.properties | 39 ++++++++------- .../src/main/resources/templates/index.html | 4 +- .../src/main/resources/templates/login.html | 4 +- 5 files changed, 78 insertions(+), 21 deletions(-) create mode 100644 oss-server/src/main/java/com/xiaominfo/oss/config/FreeMarkerConfig.java diff --git a/oss-server/pom.xml b/oss-server/pom.xml index 5ef1487..d0dfe8d 100644 --- a/oss-server/pom.xml +++ b/oss-server/pom.xml @@ -191,6 +191,11 @@ netty-all 4.1.25.Final + + + org.projectlombok + lombok + diff --git a/oss-server/src/main/java/com/xiaominfo/oss/config/FreeMarkerConfig.java b/oss-server/src/main/java/com/xiaominfo/oss/config/FreeMarkerConfig.java new file mode 100644 index 0000000..08dd498 --- /dev/null +++ b/oss-server/src/main/java/com/xiaominfo/oss/config/FreeMarkerConfig.java @@ -0,0 +1,47 @@ +package com.xiaominfo.oss.config; + +import freemarker.template.TemplateModelException; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; + +import javax.annotation.PostConstruct; +import java.util.HashMap; +import java.util.Map; + +/** + *

+ * oss-server-parent: freemarker鍏ㄥ眬閰嶇疆 + *

+ * + * @author ixyxj xieyangxuejun@gmail.com + * @date 2020-01-18 21:41:19 + * @since oss-server-parent 1 + */ +@Configuration +@Data +@NoArgsConstructor +@AllArgsConstructor +@PropertySource(value="classpath:application.properties",encoding = "utf-8") +public class FreeMarkerConfig { + @Autowired private freemarker.template.Configuration configuration; + + + @Value(value = "${website.name}") + private String websiteName; + @Value(value = "${material.navbarName}") + private String navbarName; + + @PostConstruct + public void setGlobalConfig() throws TemplateModelException { + Map map = new HashMap<>(); + map.put("navbarName", navbarName); + map.put("websiteName", websiteName); + configuration.setSharedVaribles(map); + } + +} diff --git a/oss-server/src/main/resources/application.properties b/oss-server/src/main/resources/application.properties index 086c10a..d73d390 100644 --- a/oss-server/src/main/resources/application.properties +++ b/oss-server/src/main/resources/application.properties @@ -1,47 +1,51 @@ # ----------------------------------------------------------------------------------------------------------------# -# oss-server 鍩虹閰嶇疆 # +# oss-server \u57FA\u7840\u914D\u7F6E # # ----------------------------------------------------------------------------------------------------------------# server.port=18000 spring.application.name=OSS Server Application v1.0 -#鏂囦欢浼犺緭绔彛 +website.name=1-OSS-Server\u5728\u7EBF\u5B58\u50A8\u7BA1\u7406\u7CFB\u7EDF +#\u6587\u4EF6\u4F20\u8F93\u7AEF\u53E3 material.masterPort=18001 -#鏂囦欢闆嗙兢閰嶇疆 +#\u6587\u4EF6\u96C6\u7FA4\u914D\u7F6E material.nodes=172.30.45.2:18001 -#绱犳潗瀛樺偍璺緞 -- 浠/缁撳熬 +#\u7D20\u6750\u5B58\u50A8\u8DEF\u5F84 -- \u4EE5/\u7ED3\u5C3E material.root=/home/material/ -#绱犳潗涓嬭浇璺緞鏍圭洰褰 +#\u7D20\u6750\u4E0B\u8F7D\u8DEF\u5F84\u6839\u76EE\u5F55 material.invokingRoot=http://192.168.0.7/ -#璺緞鏂瑰紡:R(鐩稿璺緞+鏂囦欢鍚),N(鏂囦欢鍚) +#\u8DEF\u5F84\u65B9\u5F0F:R(\u76F8\u5BF9\u8DEF\u5F84+\u6587\u4EF6\u540D),N(\u6587\u4EF6\u540D) material.pathstyle=R -## 杩囨护涓婁紶鏂囦欢鏍煎紡,澶у皬鍐欏拷鐣 +## \u8FC7\u6EE4\u4E0A\u4F20\u6587\u4EF6\u683C\u5F0F,\u5927\u5C0F\u5199\u5FFD\u7565 material.excludeFileTypes=sh,jsp,php,exe,asp,dll +## \u8BBE\u7F6E\u7BA1\u7406\u540E\u53F0\u540D\u79F0 +material.navbarName=1-OSS-Server\u5BF9\u8C61\u5B58\u50A8\u7BA1\u7406\u540E\u53F0 # ----------------------------------------------------------------------------------------------------------------# -# spring jackson 鏃堕棿閰嶇疆 # +# spring jackson \u65F6\u95F4\u914D\u7F6E # # ----------------------------------------------------------------------------------------------------------------# spring.jackson.date-format=yyyy-MM-dd HH:mm:ss spring.jackson.joda-date-time-format=yyyy-MM-dd HH:mm:ss spring.jackson.time-zone=GMT+8 # ----------------------------------------------------------------------------------------------------------------# -# oss 鏃ュ織閰嶇疆 # +# oss \u65E5\u5FD7\u914D\u7F6E # # ----------------------------------------------------------------------------------------------------------------# logging.config=classpath:logback-oss.xml # ----------------------------------------------------------------------------------------------------------------# -# multipart 涓婁紶閰嶇疆 # +# multipart \u4E0A\u4F20\u914D\u7F6E # # ----------------------------------------------------------------------------------------------------------------# spring.servlet.multipart.enabled=true spring.servlet.multipart.max-file-size=1024MB spring.servlet.multipart.max-request-size=1024MB # ----------------------------------------------------------------------------------------------------------------# -# freemarker妯℃澘妗嗘灦閰嶇疆 # +# freemarker\u6A21\u677F\u6846\u67B6\u914D\u7F6E # # ----------------------------------------------------------------------------------------------------------------# spring.freemarker.suffix=.html spring.freemarker.enabled=true spring.freemarker.cache=false -#鐢ㄤ簬瑙e喅鍓嶇鎶ョ┖鎸囬拡闂 +#\u7528\u4E8E\u89E3\u51B3\u524D\u7AEF\u62A5\u7A7A\u6307\u9488\u95EE\u9898 spring.freemarker.settings.classic_compatible=true -#鑾峰彇鏍硅矾寰 +#\u83B7\u53D6\u6839\u8DEF\u5F84 spring.freemarker.request-context-attribute=request -#楠岃瘉鐢ㄦ埛鍚 瀵嗙爜 +spring.freemarker.charset=utf-8 +#\u9A8C\u8BC1\u7528\u6237\u540D \u5BC6\u7801 oss.security.userName=admin oss.security.password=adminA123 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource @@ -49,7 +53,8 @@ spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.platform=sqlite spring.datasource.driver-class-name=org.sqlite.JDBC #spring.datasource.url=jdbc:oracle:thin:@172.30.45.2:1521:z45db2 -spring.datasource.url=jdbc:sqlite:classpath:resource:\\db\\oss.db +#spring.datasource.url=jdbc:sqlite:classpath:resource:\\db\\oss.db +spring.datasource.url=jdbc:sqlite:/Users/xyxj/Programs/Sourcetree/oss-server/oss-server/src/main/resources/db/oss.db spring.datasource.hikari.minimum-idle=5 spring.datasource.hikari.maximum-pool-size=100 spring.datasource.hikari.auto-commit=true @@ -72,8 +77,8 @@ spring.datasource.hikari.connection-timeout=5000 #spring.datasource.max-pool-prepared-statement-per-connection-size=20 #spring.datasource.connection-properties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 spring.datasource.filters=stat,wall,slf4j -## mybatis-plus 閰嶇疆鏂囦欢 +## mybatis-plus \u914D\u7F6E\u6587\u4EF6 mybatis-plus.mapper-locations=classpath:/com/xiaominfo/oss/module/dao/mappings/*Mapper.xml mybatis-plus.type-aliases-package=com.xiaominfo.oss.module.model -## 鏃ュ織杈撳嚭 +## \u65E5\u5FD7\u8F93\u51FA mybatis-plus.configuration.log-impl=com.xiaominfo.oss.extend.mybatis.MybatisStdOutImpl \ No newline at end of file diff --git a/oss-server/src/main/resources/templates/index.html b/oss-server/src/main/resources/templates/index.html index e1691ad..db4d49b 100644 --- a/oss-server/src/main/resources/templates/index.html +++ b/oss-server/src/main/resources/templates/index.html @@ -3,7 +3,7 @@ - OSS-Server鍦ㄧ嚎瀛樺偍绠$悊绯荤粺 + ${websiteName} @@ -26,7 +26,7 @@ - OSS-Server瀵硅薄瀛樺偍绠$悊鍚庡彴 + ${navbarName} diff --git a/oss-server/src/main/resources/templates/login.html b/oss-server/src/main/resources/templates/login.html index 98beeda..b0ad4f7 100644 --- a/oss-server/src/main/resources/templates/login.html +++ b/oss-server/src/main/resources/templates/login.html @@ -24,10 +24,10 @@
- +
- +
鐧 褰 -- Gitee From 329c48a6a9d36c71c8250ce66cc05dad40f54017 Mon Sep 17 00:00:00 2001 From: ixyxj Date: Sun, 19 Jan 2020 18:54:28 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- oss-server/pom.xml | 5 +- .../oss/api/MaterialApplication.java | 15 ++++- .../com/xiaominfo/oss/api/OSSApplication.java | 1 + .../java/com/xiaominfo/oss/api/RootApis.java | 20 ++---- .../oss/common/pojo/RestfulMessage.java | 23 +++++++ .../oss/config/GlobalExceptionHandler.java | 7 ++ .../com/xiaominfo/oss/domain/FileInfo.java | 12 ++++ .../xiaominfo/oss/exception/OssException.java | 64 +++++++++++++++++++ .../com/xiaominfo/oss/utils/FileUtils.java | 30 +++++---- .../src/main/resources/templates/list.html | 17 +++-- 10 files changed, 159 insertions(+), 35 deletions(-) create mode 100644 oss-server/src/main/java/com/xiaominfo/oss/exception/OssException.java diff --git a/oss-server/pom.xml b/oss-server/pom.xml index d0dfe8d..3702079 100644 --- a/oss-server/pom.xml +++ b/oss-server/pom.xml @@ -85,7 +85,10 @@ commons-codec 1.11 - + + org.apache.commons + commons-lang3 + diff --git a/oss-server/src/main/java/com/xiaominfo/oss/api/MaterialApplication.java b/oss-server/src/main/java/com/xiaominfo/oss/api/MaterialApplication.java index 820c9a5..89f49d1 100644 --- a/oss-server/src/main/java/com/xiaominfo/oss/api/MaterialApplication.java +++ b/oss-server/src/main/java/com/xiaominfo/oss/api/MaterialApplication.java @@ -20,6 +20,7 @@ import com.xiaominfo.oss.domain.FileBinaryResponse; import com.xiaominfo.oss.exception.AssemblerException; import com.xiaominfo.oss.exception.ErrorCable; import com.xiaominfo.oss.exception.ErrorConstant; +import com.xiaominfo.oss.exception.OssException; import com.xiaominfo.oss.module.entity.OSSMaterialInfoResult; import com.xiaominfo.oss.module.model.OSSAppInfo; import com.xiaominfo.oss.module.model.OSSDeveloper; @@ -28,6 +29,7 @@ import com.xiaominfo.oss.module.model.OSSMaterialInfo; import com.xiaominfo.oss.service.*; import io.netty.util.internal.StringUtil; import org.apache.commons.codec.net.URLCodec; +import org.apache.commons.io.FileUtils; import org.apache.poi.ss.usermodel.Workbook; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpEntity; @@ -108,9 +110,6 @@ public class MaterialApplication extends RootApis { dirStr.append("/").append(pro); File file = new File(dirStr.toString()); createDirectoryQuietly(file); - file.setExecutable(false); - file.setWritable(false); - file.setReadOnly(); successResultCode(restfulMessage); } catch (Exception e) { restfulMessage = wrapperException(e); @@ -118,6 +117,16 @@ public class MaterialApplication extends RootApis { return restfulMessage; } + @GetMapping("/delete") + public RestfulMessage deleteFileOrDirectory( + @RequestParam(value = "path", required = true) String filePath) { + try { + return RestfulMessage.success(FileUtils.deleteQuietly(new File(filePath))); + } catch (Exception e) { + throw new OssException(e.getMessage()); + } + } + /*** * byte 瀛楄妭鐮佷笂浼犳枃浠 diff --git a/oss-server/src/main/java/com/xiaominfo/oss/api/OSSApplication.java b/oss-server/src/main/java/com/xiaominfo/oss/api/OSSApplication.java index 6f2a548..dd4f815 100644 --- a/oss-server/src/main/java/com/xiaominfo/oss/api/OSSApplication.java +++ b/oss-server/src/main/java/com/xiaominfo/oss/api/OSSApplication.java @@ -136,6 +136,7 @@ public class OSSApplication { , FileUtils.byteToString(FileUtils.getFileSize(file))); fileInfo.setType(FileUtils.getFileType(file)); fileInfo.setMediaType(FileUtils.getMediaType(file)); + fileInfo.setPath(file.getAbsolutePath()); if (file.isDirectory()){ String dirPath=dirFile.getAbsolutePath().substring(start); dirPath=FileUtils.transforSysSpec(dirPath); diff --git a/oss-server/src/main/java/com/xiaominfo/oss/api/RootApis.java b/oss-server/src/main/java/com/xiaominfo/oss/api/RootApis.java index c3b3ce9..729af89 100644 --- a/oss-server/src/main/java/com/xiaominfo/oss/api/RootApis.java +++ b/oss-server/src/main/java/com/xiaominfo/oss/api/RootApis.java @@ -15,12 +15,14 @@ import com.xiaominfo.oss.common.pojo.RestfulMessage; import com.xiaominfo.oss.exception.AssemblerException; import com.xiaominfo.oss.exception.ErrorCable; import com.xiaominfo.oss.exception.ErrorConstant; +import org.apache.commons.io.FileUtils; import org.joda.time.DateTime; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import java.io.File; +import java.io.IOException; /*** * @@ -152,24 +154,12 @@ public class RootApis { /*** * 鍒涘缓鏂囦欢澶 * @param file + * @deprecated 涓嶈兘璁剧疆鍙 */ public void createDirectoryQuietly(File file) { try { - if (file != null) { - if (!file.exists()) { - if (!file.mkdirs()) { - throw new RuntimeException(file.getName() + " is invalid,can't be create directory"); - } - } - } - } finally { - if (file != null) { - file.setWritable(false); - file.setExecutable(false); - file.setReadOnly(); - } - - } + FileUtils.forceMkdir(file); + } catch (Exception ignored) {} } diff --git a/oss-server/src/main/java/com/xiaominfo/oss/common/pojo/RestfulMessage.java b/oss-server/src/main/java/com/xiaominfo/oss/common/pojo/RestfulMessage.java index c6263ab..9a75a27 100644 --- a/oss-server/src/main/java/com/xiaominfo/oss/common/pojo/RestfulMessage.java +++ b/oss-server/src/main/java/com/xiaominfo/oss/common/pojo/RestfulMessage.java @@ -7,6 +7,9 @@ package com.xiaominfo.oss.common.pojo; +import com.xiaominfo.oss.exception.ErrorConstant; +import lombok.Data; + import java.io.Serializable; /*** @@ -15,6 +18,7 @@ import java.io.Serializable; * @author xiaoymin@foxmail.com * 2018/03/19 14:17 */ +@Data public class RestfulMessage implements Serializable { private Integer code; @@ -44,4 +48,23 @@ public class RestfulMessage implements Serializable { public void setData(Object data) { this.data = data; } + + public static RestfulMessage success(Object data) { + return get(ErrorConstant.SUCCESS, data, "success"); + } + + /** + * + * @param code {@link ErrorConstant} + * @param data + * @param message + * @return + */ + public static RestfulMessage get(Integer code, Object data, String message) { + RestfulMessage res = new RestfulMessage(); + res.code = code; + res.data = data; + res.message = message; + return res; + } } diff --git a/oss-server/src/main/java/com/xiaominfo/oss/config/GlobalExceptionHandler.java b/oss-server/src/main/java/com/xiaominfo/oss/config/GlobalExceptionHandler.java index 369c2bf..831b804 100644 --- a/oss-server/src/main/java/com/xiaominfo/oss/config/GlobalExceptionHandler.java +++ b/oss-server/src/main/java/com/xiaominfo/oss/config/GlobalExceptionHandler.java @@ -13,6 +13,7 @@ import cn.hutool.log.LogFactory; import com.xiaominfo.oss.api.RootApis; import com.xiaominfo.oss.common.pojo.RestfulMessage; import com.xiaominfo.oss.exception.ErrorConstant; +import com.xiaominfo.oss.exception.OssException; import com.xiaominfo.oss.exception.UserNotLoginException; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; @@ -52,4 +53,10 @@ public class GlobalExceptionHandler extends RootApis{ } return r; } + @ExceptionHandler(value= OssException.class) + @ResponseBody + public RestfulMessage handleOssException(OssException ex){ + log.error(ex); + return wrapperException(ex); + } } diff --git a/oss-server/src/main/java/com/xiaominfo/oss/domain/FileInfo.java b/oss-server/src/main/java/com/xiaominfo/oss/domain/FileInfo.java index ee29b9a..ad770b3 100644 --- a/oss-server/src/main/java/com/xiaominfo/oss/domain/FileInfo.java +++ b/oss-server/src/main/java/com/xiaominfo/oss/domain/FileInfo.java @@ -7,6 +7,8 @@ package com.xiaominfo.oss.domain; +import java.io.File; + /*** * * @since:oss-server 1.0 @@ -19,6 +21,8 @@ public class FileInfo { private String name; + private String path; + private String type; private String lastModifiedTime; @@ -90,4 +94,12 @@ public class FileInfo { this.lastModifiedTime = lastModifiedTime; this.size = size; } + + public void setPath(String path) { + this.path = path; + } + + public String getPath() { + return path; + } } diff --git a/oss-server/src/main/java/com/xiaominfo/oss/exception/OssException.java b/oss-server/src/main/java/com/xiaominfo/oss/exception/OssException.java new file mode 100644 index 0000000..7125f3a --- /dev/null +++ b/oss-server/src/main/java/com/xiaominfo/oss/exception/OssException.java @@ -0,0 +1,64 @@ +package com.xiaominfo.oss.exception; + +import lombok.Data; +import org.apache.commons.lang3.StringUtils; +import org.springframework.context.NoSuchMessageException; +import org.springframework.context.i18n.LocaleContextHolder; + +import java.io.Serializable; + +/** + *

+ * oss-server-parent: + *

+ * + * @author ixyxj xieyangxuejun@gmail.com + * @date 2020-01-19 18:18:08 + * @since oss-server-parent + */ +@Data +public class OssException extends RuntimeException implements Serializable { + + private static final long serialVersionUID = 1L; + + private String msgCode; + private Object[] msgArgs; + private String msg; + + public OssException(String msg) { + this.msg = msg; + } + + public OssException(String msg, Throwable e) { + super(e); + this.msg = msg; + } + + public OssException(Throwable cause, String messageCode, String message) { + super(cause); + this.msgCode = messageCode; + this.msg = message; + } + + public OssException(String messageCode, Object... messageArgs) { + this.msgCode = messageCode; + this.msgArgs = messageArgs; + } + public OssException(int messageCode, String messageArgs) { + this.msgCode = messageCode + ""; + this.msg = messageArgs; + } + public OssException(String messageCode, Throwable cause, Object... messageArgs) { + super(cause); + this.msgCode = messageCode; + this.msgArgs = messageArgs; + } + + @Override + public String getMessage() { + if (this.msg != null) { + return this.msg; + } + return super.getMessage(); + } +} diff --git a/oss-server/src/main/java/com/xiaominfo/oss/utils/FileUtils.java b/oss-server/src/main/java/com/xiaominfo/oss/utils/FileUtils.java index 4734308..7e6029e 100644 --- a/oss-server/src/main/java/com/xiaominfo/oss/utils/FileUtils.java +++ b/oss-server/src/main/java/com/xiaominfo/oss/utils/FileUtils.java @@ -10,6 +10,8 @@ package com.xiaominfo.oss.utils; import cn.hutool.core.util.ReUtil; import cn.hutool.core.util.StrUtil; +import org.apache.commons.io.FilenameUtils; +import org.springframework.boot.web.server.MimeMappings; import java.io.File; import java.math.BigDecimal; @@ -110,20 +112,24 @@ public class FileUtils { * @return */ public static String getFileType(File file){ - String type="鏂囦欢"; if (file.isDirectory()){ - type="鏂囦欢澶"; - }else{ - String fileName=file.getName(); - //鍒ゆ柇鏄惁鏈夊悗缂 - if (StrUtil.isNotBlank(fileName)){ - if (fileName.contains(".")){ - String suffix=fileName.substring(fileName.lastIndexOf(".")+1); - type=suffix.toUpperCase()+" 鏂囦欢"; - } - } + return "鏂囦欢澶"; } - return type; + return MimeMappings.DEFAULT.get(FilenameUtils.getExtension(file.getAbsolutePath())); +// String type="鏂囦欢"; +// if (file.isDirectory()){ +// type="鏂囦欢澶"; +// }else{ +// String fileName=file.getName(); +// //鍒ゆ柇鏄惁鏈夊悗缂 +// if (StrUtil.isNotBlank(fileName)){ +// if (fileName.contains(".")){ +// String suffix=fileName.substring(fileName.lastIndexOf(".")+1); +// type=suffix.toUpperCase()+" 鏂囦欢"; +// } +// } +// } +// return type; } public static String getMediaType(File file){ diff --git a/oss-server/src/main/resources/templates/list.html b/oss-server/src/main/resources/templates/list.html index b3937db..1877c3f 100644 --- a/oss-server/src/main/resources/templates/list.html +++ b/oss-server/src/main/resources/templates/list.html @@ -22,7 +22,7 @@ } - +
@@ -56,11 +56,12 @@ - + + @@ -71,6 +72,9 @@ + @@ -251,8 +255,13 @@ $(".btn-danger").on("click",function (e) { e.preventDefault(); - layer.confirm("纭畾鍒犻櫎璇ユ枃浠跺悧?",function () { - layer.msg("灏氭湭瀹炵幇.") + layer.confirm("纭畾鍒犻櫎璇ユ枃浠跺悧?",function (index) { + console.log(e.target.id); + $.get('/oss/material/delete', {path: e.target.id}, function(res) { + console.log(res); + window.location.reload(); + }); + layer.close(index) }) }) -- Gitee
鍏ㄩ 鏂囦欢鍚嶇О 绫诲瀷 鏈鍚庝慨鏀规椂闂 澶у皬鎿嶄綔
${file.type} ${file.lastModifiedTime} ${file.size} + +