mirror of
https://github.com/Hello-hao/Tbed.git
synced 2024-04-21 12:32:10 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
75d753c53c | ||
|
|
677c53104a | ||
|
|
113e69fff2 | ||
|
|
0ede684acb | ||
|
|
f0dd1d0db8 | ||
|
|
59aaaa1c82 | ||
|
|
f990c4cd80 | ||
|
|
369b88ffb3 | ||
|
|
bfa41ac049 | ||
|
|
ca0da1dd06 | ||
|
|
44814e79b0 | ||
|
|
f02d865389 | ||
|
|
48b0e1c5ca | ||
|
|
a04bbc1ea6 | ||
|
|
31b4426c10 | ||
|
|
766c125673 | ||
|
|
0de7e0e0fc | ||
|
|
f24a2d5557 | ||
|
|
87394258ad | ||
|
|
89a66a17b3 | ||
|
|
3e4c90c8d9 | ||
|
|
fb9f2a896e | ||
|
|
9ca8695cfd | ||
|
|
33d4990ded | ||
|
|
679ada60bc |
@@ -1,6 +0,0 @@
|
|||||||
*.js linguist-language=java
|
|
||||||
|
|
||||||
*.css linguist-language=java
|
|
||||||
|
|
||||||
*.html linguist-language=java
|
|
||||||
|
|
||||||
@@ -1,12 +1,23 @@
|
|||||||
# Hellohao图像托管程序 - 也许这会是最优秀的图床程序
|
# Hellohao图像托管 - 也许这会是最优秀的图像托管程序
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<a href="https://www.hellohao.cn/" target="_blank">
|
||||||
|
<img width="1920px" src="https://upload.cc/i1/2022/02/11/HSg5tX.png">
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
|
||||||

|

|
||||||

|

|
||||||

|

|
||||||
|
|
||||||
|
<h3 align="center">赞助商</h3>
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<a href="https://www.eltyun.com/" target="_blank">
|
||||||
|
<img width="350px" src="https://t.tdo.ink/hellohao/s9ugmihq.png">
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
>:exclamation: 托管的所有开源代码可能存在作者修改/测试/调整等行为,均为实验性代码,故并不保证程序或功能的可用性,如果你想要部署程序,请下载我们提供的编译整合包进行安装部署。
|
>:exclamation: 托管的所有开源代码可能存在作者修改/测试/调整等行为,均为实验性代码,故并不保证程序或功能的可用性,如果你想要部署程序,请下载我们提供的编译整合包进行安装部署。
|
||||||
|
|
||||||
|
|
||||||
@@ -27,13 +38,12 @@
|
|||||||
|
|
||||||
[Core版](https://hellohao.cn):开源版的基础上增加`Backblaze(B2)` 并且可`同个对象存储商家`可开多个存储源(可添加至90+存储源)
|
[Core版](https://hellohao.cn):开源版的基础上增加`Backblaze(B2)` 并且可`同个对象存储商家`可开多个存储源(可添加至90+存储源)
|
||||||
|
|
||||||
|
|
||||||
### 更新日志 `20230925`
|
|
||||||
|
|
||||||
- 修复一些sql异常错误的问题
|
### 更新日志 `20240319`
|
||||||
|
|
||||||
|
- 修复部分部署场景部署不成功的问题
|
||||||
|
- 提高系统稳定性
|
||||||
|
|
||||||
[^_^]: 程序宣传视频:[自制宣传视频](https://www.bilibili.com/video/BV11r4y1y7mH/)
|
|
||||||
|
|
||||||
|
|
||||||
### 主要功能
|
### 主要功能
|
||||||
@@ -141,6 +151,8 @@
|
|||||||
|
|
||||||
更多部署教程参考程序[相关文档](http://doc.hellohao.cn)
|
更多部署教程参考程序[相关文档](http://doc.hellohao.cn)
|
||||||
|
|
||||||
|
更强大的功能可[购买Core版](http://tbed.hellohao.cn/pay)程序
|
||||||
|
|
||||||
|
|
||||||
### 启动项目
|
### 启动项目
|
||||||
> 访问你的前端域名即可
|
> 访问你的前端域名即可
|
||||||
@@ -162,12 +174,6 @@
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
[^_^]: 
|
|
||||||
[^_^]: 
|
|
||||||
[^_^]: 
|
|
||||||
[^_^]: 
|
|
||||||
[^_^]: 
|
|
||||||
|
|
||||||
### 桌面客户端(win/mac)
|
### 桌面客户端(win/mac)
|
||||||
> 获取地址:[官网获取](https://www.hellohao.cn/app)
|
> 获取地址:[官网获取](https://www.hellohao.cn/app)
|
||||||
|
|
||||||
@@ -182,7 +188,7 @@
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
[//]: # ()
|
[//]: # ""
|
||||||
|
|
||||||
|
|
||||||
### 运行环境
|
### 运行环境
|
||||||
@@ -229,4 +235,3 @@ Hellohao图像托管已申请[**中国国家版权局计算机软件著作权**]
|
|||||||
**如需程序定制或其他业务,请与我们取得联系**
|
**如需程序定制或其他业务,请与我们取得联系**
|
||||||
[Hellohao图像托管官网](http://hellohao.cn)
|
[Hellohao图像托管官网](http://hellohao.cn)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -130,7 +130,17 @@
|
|||||||
<artifactId>spring-boot-starter-mail</artifactId>
|
<artifactId>spring-boot-starter-mail</artifactId>
|
||||||
<version>2.5.1</version>
|
<version>2.5.1</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<!-- webdav-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.httpcomponents</groupId>
|
||||||
|
<artifactId>httpclient</artifactId>
|
||||||
|
<version>4.5.14</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.github.lookfirst</groupId>
|
||||||
|
<artifactId>sardine</artifactId>
|
||||||
|
<version>5.10</version>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.baidu.aip</groupId>
|
<groupId>com.baidu.aip</groupId>
|
||||||
<artifactId>java-sdk</artifactId>
|
<artifactId>java-sdk</artifactId>
|
||||||
@@ -238,7 +248,7 @@
|
|||||||
<configuration>
|
<configuration>
|
||||||
<testFailureIgnore>true</testFailureIgnore>
|
<testFailureIgnore>true</testFailureIgnore>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>8</source><target>8</target></configuration></plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
|
|
||||||
|
|||||||
@@ -17,6 +17,8 @@ import org.springframework.util.unit.DataSize;
|
|||||||
|
|
||||||
import javax.servlet.MultipartConfigElement;
|
import javax.servlet.MultipartConfigElement;
|
||||||
import javax.sql.DataSource;
|
import javax.sql.DataSource;
|
||||||
|
import java.net.InetAddress;
|
||||||
|
import java.net.Socket;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
@SpringBootApplication
|
@SpringBootApplication
|
||||||
|
|||||||
@@ -35,7 +35,6 @@ public class SubjectFilter extends BasicHttpAuthenticationFilter {
|
|||||||
String serviceName = httpServletRequest.getServletPath();//获取接口
|
String serviceName = httpServletRequest.getServletPath();//获取接口
|
||||||
String Users_Origin = httpServletRequest.getHeader("usersOrigin");
|
String Users_Origin = httpServletRequest.getHeader("usersOrigin");
|
||||||
String token = httpServletRequest.getHeader("Authorization");
|
String token = httpServletRequest.getHeader("Authorization");
|
||||||
//验证前端域名
|
|
||||||
if(httpServletRequest.getMethod().equals("POST") && !serviceName.contains("/api") && !serviceName.contains("/verifyCode")
|
if(httpServletRequest.getMethod().equals("POST") && !serviceName.contains("/api") && !serviceName.contains("/verifyCode")
|
||||||
&& !serviceName.contains("/getClientVersion") && !serviceName.contains("/client")){
|
&& !serviceName.contains("/getClientVersion") && !serviceName.contains("/client")){
|
||||||
try{
|
try{
|
||||||
@@ -75,7 +74,6 @@ public class SubjectFilter extends BasicHttpAuthenticationFilter {
|
|||||||
Subject subject = SecurityUtils.getSubject();
|
Subject subject = SecurityUtils.getSubject();
|
||||||
UsernamePasswordToken tokenOBJ = new UsernamePasswordToken(userData.getEmail(),userData.getPassword());
|
UsernamePasswordToken tokenOBJ = new UsernamePasswordToken(userData.getEmail(),userData.getPassword());
|
||||||
tokenOBJ.setRememberMe(true);
|
tokenOBJ.setRememberMe(true);
|
||||||
//执行登录方法,如果没有异常,说明登录成功
|
|
||||||
subject.login(tokenOBJ);
|
subject.login(tokenOBJ);
|
||||||
SecurityUtils.getSubject().getSession().setTimeout(3600000);
|
SecurityUtils.getSubject().getSession().setTimeout(3600000);
|
||||||
User loginUser = (User) SecurityUtils.getSubject().getPrincipal();
|
User loginUser = (User) SecurityUtils.getSubject().getPrincipal();
|
||||||
@@ -102,7 +100,6 @@ public class SubjectFilter extends BasicHttpAuthenticationFilter {
|
|||||||
subject.login(tokenOBJ);
|
subject.login(tokenOBJ);
|
||||||
SecurityUtils.getSubject().getSession().setTimeout(3600000);//一小时
|
SecurityUtils.getSubject().getSession().setTimeout(3600000);//一小时
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
// System.err.println("拦截器,登录失败,false");
|
|
||||||
this.CODE = "403";
|
this.CODE = "403";
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ public class ShiroConfig {
|
|||||||
filterMap.put("/verifyCodeForRetrieve","anon");
|
filterMap.put("/verifyCodeForRetrieve","anon");
|
||||||
filterMap.put("/verifyCodeFortowSendEmail","anon");
|
filterMap.put("/verifyCodeFortowSendEmail","anon");
|
||||||
filterMap.put("/api/**","anon");
|
filterMap.put("/api/**","anon");
|
||||||
|
filterMap.put("/w/**","anon");
|
||||||
filterMap.put("/user/**","anon");
|
filterMap.put("/user/**","anon");
|
||||||
filterMap.put("/ota/**","anon");
|
filterMap.put("/ota/**","anon");
|
||||||
filterMap.put("/admin/root/**","roles[admin]");
|
filterMap.put("/admin/root/**","roles[admin]");
|
||||||
|
|||||||
@@ -16,9 +16,9 @@ public class PoolConfig {
|
|||||||
@Bean(name = "taskExecutor")
|
@Bean(name = "taskExecutor")
|
||||||
public ThreadPoolTaskExecutor taskExecutor() {
|
public ThreadPoolTaskExecutor taskExecutor() {
|
||||||
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
|
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
|
||||||
executor.setCorePoolSize(properties.getCorePoolSize());
|
executor.setCorePoolSize(properties.getCorePoolSize()); //设置核心线程数
|
||||||
executor.setMaxPoolSize(properties.getMaxPoolSize());
|
executor.setMaxPoolSize(properties.getMaxPoolSize()); //设置最大线程数
|
||||||
executor.setQueueCapacity(properties.getQueueCapacity());
|
executor.setQueueCapacity(properties.getQueueCapacity()); //设置队列容量
|
||||||
executor.setThreadNamePrefix(properties.getThreadNamePrefix());
|
executor.setThreadNamePrefix(properties.getThreadNamePrefix());
|
||||||
executor.setKeepAliveSeconds(properties.getKeepAliveTime());
|
executor.setKeepAliveSeconds(properties.getKeepAliveTime());
|
||||||
executor.setWaitForTasksToCompleteOnShutdown(properties.isWaitForTasksToCompleteOnShutdown());
|
executor.setWaitForTasksToCompleteOnShutdown(properties.isWaitForTasksToCompleteOnShutdown());
|
||||||
@@ -42,7 +42,7 @@ public class PoolConfig {
|
|||||||
private int corePoolSize = 5;
|
private int corePoolSize = 5;
|
||||||
private int maxPoolSize = 50;
|
private int maxPoolSize = 50;
|
||||||
private int keepAliveTime = 15;
|
private int keepAliveTime = 15;
|
||||||
private int queueCapacity = 6;
|
private int queueCapacity = 10;
|
||||||
private String threadNamePrefix = "Tbed-Thread";
|
private String threadNamePrefix = "Tbed-Thread";
|
||||||
private boolean allowCoreThreadTimeout = false;
|
private boolean allowCoreThreadTimeout = false;
|
||||||
private boolean waitForTasksToCompleteOnShutdown = false;
|
private boolean waitForTasksToCompleteOnShutdown = false;
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ import cn.hellohao.service.*;
|
|||||||
import cn.hellohao.service.impl.AlbumServiceImpl;
|
import cn.hellohao.service.impl.AlbumServiceImpl;
|
||||||
import cn.hellohao.service.impl.UserServiceImpl;
|
import cn.hellohao.service.impl.UserServiceImpl;
|
||||||
import cn.hellohao.service.impl.deleImages;
|
import cn.hellohao.service.impl.deleImages;
|
||||||
import cn.hellohao.utils.Base64Encryption;
|
|
||||||
import cn.hellohao.utils.SetFiles;
|
import cn.hellohao.utils.SetFiles;
|
||||||
import cn.hellohao.utils.SetText;
|
import cn.hellohao.utils.SetText;
|
||||||
import cn.hellohao.utils.progress.MyProgress;
|
import cn.hellohao.utils.progress.MyProgress;
|
||||||
@@ -28,10 +27,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
|
|||||||
|
|
||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Hellohao
|
* @author Hellohao
|
||||||
@@ -444,10 +440,11 @@ public class AdminController {
|
|||||||
user.setEmail(email);
|
user.setEmail(email);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
user.setPassword(Base64Encryption.encryptBASE64(password.getBytes()));
|
|
||||||
|
user.setPassword(Base64.getEncoder().encodeToString(password.getBytes()));
|
||||||
user.setUid(u.getUid());
|
user.setUid(u.getUid());
|
||||||
} else {
|
} else {
|
||||||
user.setPassword(Base64Encryption.encryptBASE64(password.getBytes()));
|
user.setPassword(Base64.getEncoder().encodeToString(password.getBytes()));
|
||||||
user.setUid(u.getUid());
|
user.setUid(u.getUid());
|
||||||
}
|
}
|
||||||
userService.change(user);
|
userService.change(user);
|
||||||
|
|||||||
@@ -47,6 +47,22 @@ public class AdminRootController {
|
|||||||
private ImgreviewService imgreviewService;
|
private ImgreviewService imgreviewService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private AppClientService appClientService;
|
private AppClientService appClientService;
|
||||||
|
@Autowired
|
||||||
|
private NOSImageupload nOSImageupload;
|
||||||
|
@Autowired
|
||||||
|
private OSSImageupload ossImageupload;
|
||||||
|
@Autowired
|
||||||
|
private USSImageupload ussImageupload;
|
||||||
|
@Autowired
|
||||||
|
private KODOImageupload kodoImageupload;
|
||||||
|
@Autowired
|
||||||
|
private COSImageupload cosImageupload;
|
||||||
|
@Autowired
|
||||||
|
private FtpServiceImpl ftpService;
|
||||||
|
@Autowired
|
||||||
|
private S3Imageupload s3Imageupload;
|
||||||
|
@Autowired
|
||||||
|
private WebDAVImageupload webDAVImageupload;
|
||||||
|
|
||||||
|
|
||||||
@PostMapping(value = "/getUserList")
|
@PostMapping(value = "/getUserList")
|
||||||
@@ -189,19 +205,21 @@ public class AdminRootController {
|
|||||||
Keys key = keysService.selectKeys(keyId);
|
Keys key = keysService.selectKeys(keyId);
|
||||||
Integer ret = 0;
|
Integer ret = 0;
|
||||||
if (key.getStorageType() == 1) {
|
if (key.getStorageType() == 1) {
|
||||||
ret = NOSImageupload.Initialize(key);
|
ret = nOSImageupload.Initialize(key);
|
||||||
} else if (key.getStorageType() == 2) {
|
} else if (key.getStorageType() == 2) {
|
||||||
ret = OSSImageupload.Initialize(key);
|
ret = ossImageupload.Initialize(key);
|
||||||
} else if (key.getStorageType() == 3) {
|
} else if (key.getStorageType() == 3) {
|
||||||
ret = USSImageupload.Initialize(key);
|
ret = ussImageupload.Initialize(key);
|
||||||
} else if (key.getStorageType() == 4) {
|
} else if (key.getStorageType() == 4) {
|
||||||
ret = KODOImageupload.Initialize(key);
|
ret = kodoImageupload.Initialize(key);
|
||||||
} else if (key.getStorageType() == 6) {
|
} else if (key.getStorageType() == 6) {
|
||||||
ret = COSImageupload.Initialize(key);
|
ret = cosImageupload.Initialize(key);
|
||||||
} else if (key.getStorageType() == 7) {
|
} else if (key.getStorageType() == 7) {
|
||||||
ret = FtpServiceImpl.Initialize(key);
|
ret = ftpService.Initialize(key);
|
||||||
} else if (key.getStorageType() == 8) {
|
} else if (key.getStorageType() == 8) {
|
||||||
ret = S3Imageupload.Initialize(key);
|
ret = s3Imageupload.Initialize(key);
|
||||||
|
}else if (key.getStorageType() == 9) {
|
||||||
|
ret = webDAVImageupload.Initialize(key);
|
||||||
}
|
}
|
||||||
Long l = imgService.getsourcememory(keyId);
|
Long l = imgService.getsourcememory(keyId);
|
||||||
jsonObject.put("isok", ret);
|
jsonObject.put("isok", ret);
|
||||||
@@ -224,23 +242,6 @@ public class AdminRootController {
|
|||||||
@ResponseBody
|
@ResponseBody
|
||||||
public Msg updateStorage(@RequestParam(value = "data", defaultValue = "") String data) {
|
public Msg updateStorage(@RequestParam(value = "data", defaultValue = "") String data) {
|
||||||
JSONObject jsonObj = JSONObject.parseObject(data);
|
JSONObject jsonObj = JSONObject.parseObject(data);
|
||||||
// Integer id = jsonObj.getInteger("id");
|
|
||||||
// String AccessKey = jsonObj.getString("AccessKey");
|
|
||||||
// String AccessSecret = jsonObj.getString("AccessSecret");
|
|
||||||
// String Endpoint = jsonObj.getString("Endpoint");
|
|
||||||
// String Bucketname = jsonObj.getString("Bucketname");
|
|
||||||
// String RequestAddress = jsonObj.getString("RequestAddress");
|
|
||||||
// Integer storageType = jsonObj.getInteger("storageType");
|
|
||||||
// String keyname = jsonObj.getString("keyname");
|
|
||||||
// Keys keys = new Keys();
|
|
||||||
// keys.setId(id);
|
|
||||||
// keys.setAccessKey(AccessKey);
|
|
||||||
// keys.setAccessSecret(AccessSecret);
|
|
||||||
// keys.setEndpoint(Endpoint);
|
|
||||||
// keys.setBucketname(Bucketname);
|
|
||||||
// keys.setRequestAddress(RequestAddress);
|
|
||||||
// keys.setStorageType(storageType);
|
|
||||||
// keys.setKeyname(keyname);
|
|
||||||
Keys keys = JSON.toJavaObject(jsonObj,Keys.class);
|
Keys keys = JSON.toJavaObject(jsonObj,Keys.class);
|
||||||
Msg msg = keysService.updateKey(keys);
|
Msg msg = keysService.updateKey(keys);
|
||||||
return msg;
|
return msg;
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import cn.hellohao.config.GlobalConstant;
|
|||||||
import cn.hellohao.pojo.*;
|
import cn.hellohao.pojo.*;
|
||||||
import cn.hellohao.service.*;
|
import cn.hellohao.service.*;
|
||||||
import cn.hellohao.service.impl.UploadServicel;
|
import cn.hellohao.service.impl.UploadServicel;
|
||||||
|
import cn.hellohao.service.impl.WebDAVImageupload;
|
||||||
import cn.hellohao.service.impl.deleImages;
|
import cn.hellohao.service.impl.deleImages;
|
||||||
import cn.hellohao.utils.GetIPS;
|
import cn.hellohao.utils.GetIPS;
|
||||||
import cn.hellohao.utils.MyVersion;
|
import cn.hellohao.utils.MyVersion;
|
||||||
@@ -19,6 +20,8 @@ import org.apache.shiro.SecurityUtils;
|
|||||||
import org.apache.shiro.authc.UsernamePasswordToken;
|
import org.apache.shiro.authc.UsernamePasswordToken;
|
||||||
import org.apache.shiro.subject.Subject;
|
import org.apache.shiro.subject.Subject;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.core.io.InputStreamResource;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.ui.Model;
|
import org.springframework.ui.Model;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
@@ -43,8 +46,8 @@ public class IndexController {
|
|||||||
@Autowired private deleImages deleimages;
|
@Autowired private deleImages deleimages;
|
||||||
@Autowired private IRedisService iRedisService;
|
@Autowired private IRedisService iRedisService;
|
||||||
@Autowired private AppClientService appClientService;
|
@Autowired private AppClientService appClientService;
|
||||||
|
@Autowired private WebDAVImageupload webDAVImageupload;
|
||||||
public static String version = "20230925";
|
public static String version = "20240319";
|
||||||
@RequestMapping(value = "/")
|
@RequestMapping(value = "/")
|
||||||
public String Welcome(Model model, HttpServletRequest httpServletRequest) {
|
public String Welcome(Model model, HttpServletRequest httpServletRequest) {
|
||||||
model.addAttribute("name", "服务端程序(开源版)");
|
model.addAttribute("name", "服务端程序(开源版)");
|
||||||
@@ -65,6 +68,7 @@ public class IndexController {
|
|||||||
JSONObject jsonObject = new JSONObject();
|
JSONObject jsonObject = new JSONObject();
|
||||||
AppClient appClient = appClientService.getAppClientData("app");
|
AppClient appClient = appClientService.getAppClientData("app");
|
||||||
jsonObject.put("webname", cd.getString("webname"));
|
jsonObject.put("webname", cd.getString("webname"));
|
||||||
|
jsonObject.put("systype","free");
|
||||||
jsonObject.put("version",version);
|
jsonObject.put("version",version);
|
||||||
jsonObject.put("websubtitle", cd.getString("websubtitle"));
|
jsonObject.put("websubtitle", cd.getString("websubtitle"));
|
||||||
jsonObject.put("keywords", cd.getString("keywords"));
|
jsonObject.put("keywords", cd.getString("keywords"));
|
||||||
@@ -85,7 +89,7 @@ public class IndexController {
|
|||||||
msg.setData(jsonObject);
|
msg.setData(jsonObject);
|
||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
@PostMapping("/uploadChunkFile")
|
@PostMapping(value = {"/uploadChunkFile","/client/uploadChunkFile"})
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
@CrossOrigin
|
@CrossOrigin
|
||||||
public Msg uploadChunk(HttpServletRequest request,Chunk chunk) {
|
public Msg uploadChunk(HttpServletRequest request,Chunk chunk) {
|
||||||
@@ -108,7 +112,7 @@ public class IndexController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/processFile")
|
@PostMapping(value = {"/processFile","/client/processFile"})
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
@CrossOrigin
|
@CrossOrigin
|
||||||
public Msg processFile(HttpServletRequest request,@RequestParam(value = "data", defaultValue = "") String data){
|
public Msg processFile(HttpServletRequest request,@RequestParam(value = "data", defaultValue = "") String data){
|
||||||
@@ -190,6 +194,14 @@ public class IndexController {
|
|||||||
return retMsg;
|
return retMsg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//webdav本地托管
|
||||||
|
@GetMapping("/w/{shortuuid}")
|
||||||
|
public ResponseEntity<InputStreamResource> getNextcloudImage(HttpServletRequest request, @PathVariable("shortuuid") String shortuuid) {
|
||||||
|
ResponseEntity<InputStreamResource> webDAV = webDAVImageupload.getWebDAV(shortuuid);
|
||||||
|
return webDAV;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@RequestMapping(value = "/getUploadInfo")
|
@RequestMapping(value = "/getUploadInfo")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public Msg getUploadInfo() {
|
public Msg getUploadInfo() {
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import cn.hellohao.auth.token.JWTUtil;
|
|||||||
import cn.hellohao.config.SysName;
|
import cn.hellohao.config.SysName;
|
||||||
import cn.hellohao.pojo.*;
|
import cn.hellohao.pojo.*;
|
||||||
import cn.hellohao.service.*;
|
import cn.hellohao.service.*;
|
||||||
import cn.hellohao.utils.Base64Encryption;
|
|
||||||
import cn.hellohao.utils.NewSendEmail;
|
import cn.hellohao.utils.NewSendEmail;
|
||||||
import cn.hellohao.utils.Print;
|
import cn.hellohao.utils.Print;
|
||||||
import cn.hellohao.utils.SetText;
|
import cn.hellohao.utils.SetText;
|
||||||
@@ -27,6 +26,7 @@ import javax.servlet.http.HttpServletRequest;
|
|||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import javax.servlet.http.HttpSession;
|
import javax.servlet.http.HttpSession;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Base64;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@@ -55,7 +55,7 @@ public class UserController {
|
|||||||
JSONObject jsonObj = JSONObject.parseObject(data);
|
JSONObject jsonObj = JSONObject.parseObject(data);
|
||||||
String username = jsonObj.getString("username");
|
String username = jsonObj.getString("username");
|
||||||
String email = jsonObj.getString("email");
|
String email = jsonObj.getString("email");
|
||||||
String password = Base64Encryption.encryptBASE64(jsonObj.getString("password").getBytes());
|
String password = Base64.getEncoder().encodeToString(jsonObj.getString("password").getBytes());
|
||||||
String verifyCodeForRegister = jsonObj.getString("verifyCode");
|
String verifyCodeForRegister = jsonObj.getString("verifyCode");
|
||||||
Object redis_verifyCodeForRegister = iRedisService.getValue("verifyCodeForRegister_"+httpServletRequest.getHeader("verifyCodeForRegister"));
|
Object redis_verifyCodeForRegister = iRedisService.getValue("verifyCodeForRegister_"+httpServletRequest.getHeader("verifyCodeForRegister"));
|
||||||
if(!SetText.checkEmail(email)){
|
if(!SetText.checkEmail(email)){
|
||||||
@@ -203,7 +203,7 @@ public class UserController {
|
|||||||
Msg msg = new Msg();
|
Msg msg = new Msg();
|
||||||
JSONObject jsonObj = JSONObject.parseObject(data);
|
JSONObject jsonObj = JSONObject.parseObject(data);
|
||||||
String email = jsonObj.getString("email");
|
String email = jsonObj.getString("email");
|
||||||
String password = Base64Encryption.encryptBASE64(jsonObj.getString("password").getBytes());
|
String password = Base64.getEncoder().encodeToString(jsonObj.getString("password").getBytes());
|
||||||
String verifyCode = jsonObj.getString("verifyCode");
|
String verifyCode = jsonObj.getString("verifyCode");
|
||||||
if(null == email || null == password || null == verifyCode){
|
if(null == email || null == password || null == verifyCode){
|
||||||
msg.setCode("5000");
|
msg.setCode("5000");
|
||||||
@@ -385,7 +385,7 @@ public class UserController {
|
|||||||
User user = userService.getUsers(u2);
|
User user = userService.getUsers(u2);
|
||||||
user.setIsok(1);
|
user.setIsok(1);
|
||||||
String new_pass = HexUtil.decodeHexStr(cip);//解密密码
|
String new_pass = HexUtil.decodeHexStr(cip);//解密密码
|
||||||
user.setPassword(Base64Encryption.encryptBASE64(new_pass.getBytes()));
|
user.setPassword(Base64.getEncoder().encodeToString(new_pass.getBytes()));
|
||||||
String uid = UUID.randomUUID().toString().replace("-", "").toLowerCase();
|
String uid = UUID.randomUUID().toString().replace("-", "").toLowerCase();
|
||||||
user.setUid(uid);
|
user.setUid(uid);
|
||||||
if (user != null) {
|
if (user != null) {
|
||||||
|
|||||||
@@ -9,13 +9,9 @@ import java.util.List;
|
|||||||
|
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface CodeMapper {
|
public interface CodeMapper {
|
||||||
//查询扩容码
|
|
||||||
List<Code> selectCode(@Param("code") String code);
|
List<Code> selectCode(@Param("code") String code);
|
||||||
Code selectCodekey(@Param("code") String code);
|
Code selectCodekey(@Param("code") String code);
|
||||||
//Integer selectCodekey(@Param("value") String value);
|
|
||||||
//添加
|
|
||||||
Integer addCode(Code code);
|
Integer addCode(Code code);
|
||||||
//删除扩容码
|
|
||||||
Integer deleteCode(@Param("code") String code);
|
Integer deleteCode(@Param("code") String code);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,6 +22,10 @@ public interface ImgMapper {
|
|||||||
|
|
||||||
Images selectByPrimaryKey(@Param("id") Long id);
|
Images selectByPrimaryKey(@Param("id") Long id);
|
||||||
|
|
||||||
|
Images selectImgByBrieflink(@Param("brieflink") String brieflink);
|
||||||
|
|
||||||
|
Images selectImgByShortlink(@Param("shortlink") String shortlink);
|
||||||
|
|
||||||
Integer counts(@Param("userid") Integer userid);
|
Integer counts(@Param("userid") Integer userid);
|
||||||
|
|
||||||
Integer setImg(Images images);
|
Integer setImg(Images images);
|
||||||
|
|||||||
@@ -9,11 +9,9 @@ import java.util.List;
|
|||||||
|
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface KeysMapper {
|
public interface KeysMapper {
|
||||||
//查询密钥
|
|
||||||
Keys selectKeys(@Param("id") Integer id);
|
Keys selectKeys(@Param("id") Integer id);
|
||||||
List<Keys> getStorageName();
|
List<Keys> getStorageName();
|
||||||
List<Keys> getStorage();
|
List<Keys> getStorage();
|
||||||
//修改key
|
|
||||||
Integer updateKey(Keys key);
|
Integer updateKey(Keys key);
|
||||||
List<Keys> getKeys();
|
List<Keys> getKeys();
|
||||||
|
|
||||||
|
|||||||
@@ -39,6 +39,8 @@ public class Images {
|
|||||||
private String idname;
|
private String idname;
|
||||||
private Integer isRepeat;//如果没有开启查重的时候他是0,开启为1
|
private Integer isRepeat;//如果没有开启查重的时候他是0,开启为1
|
||||||
private String searchname;
|
private String searchname;
|
||||||
|
private String brieflink;
|
||||||
|
private String shortlink;
|
||||||
private String order;
|
private String order;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -14,5 +14,9 @@ public class Keys {
|
|||||||
private Integer storageType;
|
private Integer storageType;
|
||||||
private String keyname;
|
private String keyname;
|
||||||
private String RootPath;//存入的目录
|
private String RootPath;//存入的目录
|
||||||
|
private Boolean SysTransmit;
|
||||||
|
|
||||||
|
public Boolean getSysTransmit() {
|
||||||
|
return SysTransmit==null?false:SysTransmit;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,16 +11,12 @@ public class Msg implements Serializable {
|
|||||||
|
|
||||||
private static final long serialVersionUID = 5196249482551119279L;
|
private static final long serialVersionUID = 5196249482551119279L;
|
||||||
|
|
||||||
//返回码
|
|
||||||
private String code ="200";
|
private String code ="200";
|
||||||
|
|
||||||
//提示信息
|
|
||||||
private String info="操作成功";
|
private String info="操作成功";
|
||||||
|
|
||||||
//返回数据
|
|
||||||
private Object data;
|
private Object data;
|
||||||
|
|
||||||
//异常
|
|
||||||
private String exceptions;
|
private String exceptions;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -34,6 +34,8 @@ public class FirstJob {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private S3Imageupload s3Imageupload;
|
private S3Imageupload s3Imageupload;
|
||||||
@Autowired
|
@Autowired
|
||||||
|
private WebDAVImageupload webDAVImageupload;
|
||||||
|
@Autowired
|
||||||
private FtpServiceImpl ftpService;
|
private FtpServiceImpl ftpService;
|
||||||
@Autowired
|
@Autowired
|
||||||
ImgTempService imgTempService;
|
ImgTempService imgTempService;
|
||||||
@@ -78,6 +80,8 @@ public class FirstJob {
|
|||||||
firstJob.ftpService.delFTP(keys.getId(), images);
|
firstJob.ftpService.delFTP(keys.getId(), images);
|
||||||
}else if(keys.getStorageType()==8){
|
}else if(keys.getStorageType()==8){
|
||||||
firstJob.s3Imageupload.deleS3(keys.getId(), images);
|
firstJob.s3Imageupload.deleS3(keys.getId(), images);
|
||||||
|
}else if(keys.getStorageType()==9){
|
||||||
|
firstJob.webDAVImageupload.delWebDAV(keys.getId(), images);
|
||||||
}else{
|
}else{
|
||||||
System.err.println("未获取到对象存储参数,上传失败。");
|
System.err.println("未获取到对象存储参数,上传失败。");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package cn.hellohao.service;
|
|||||||
|
|
||||||
import cn.hellohao.pojo.Images;
|
import cn.hellohao.pojo.Images;
|
||||||
import cn.hellohao.pojo.User;
|
import cn.hellohao.pojo.User;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -21,6 +22,10 @@ public interface ImgService {
|
|||||||
|
|
||||||
Images selectByPrimaryKey(Long id);
|
Images selectByPrimaryKey(Long id);
|
||||||
|
|
||||||
|
Images selectImgByBrieflink(String brieflink);
|
||||||
|
|
||||||
|
Images selectImgByShortlink(String shortlink);
|
||||||
|
|
||||||
Integer counts(Integer userid);
|
Integer counts(Integer userid);
|
||||||
|
|
||||||
Integer setImg(Images images);
|
Integer setImg(Images images);
|
||||||
|
|||||||
@@ -15,13 +15,17 @@ import com.qcloud.cos.model.PutObjectRequest;
|
|||||||
import com.qcloud.cos.model.PutObjectResult;
|
import com.qcloud.cos.model.PutObjectResult;
|
||||||
import com.qcloud.cos.region.Region;
|
import com.qcloud.cos.region.Region;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.io.FileInputStream;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class COSImageupload {
|
public class COSImageupload {
|
||||||
|
private static Logger logger = LoggerFactory.getLogger(COSImageupload.class);
|
||||||
static COSClient cosClient;
|
static COSClient cosClient;
|
||||||
static Keys key;
|
static Keys key;
|
||||||
|
|
||||||
@@ -29,16 +33,18 @@ public class COSImageupload {
|
|||||||
Map<Map<String, String>, File> fileMap, String username, Integer keyID) {
|
Map<Map<String, String>, File> fileMap, String username, Integer keyID) {
|
||||||
ReturnImage returnImage = new ReturnImage();
|
ReturnImage returnImage = new ReturnImage();
|
||||||
File file = null;
|
File file = null;
|
||||||
|
FileInputStream stream = null;
|
||||||
try {
|
try {
|
||||||
for (Map.Entry<Map<String, String>, File> entry : fileMap.entrySet()) {
|
for (Map.Entry<Map<String, String>, File> entry : fileMap.entrySet()) {
|
||||||
String prefix = entry.getKey().get("prefix");
|
String prefix = entry.getKey().get("prefix");
|
||||||
String ShortUIDName = entry.getKey().get("name");
|
String ShortUIDName = entry.getKey().get("name");
|
||||||
file = entry.getValue();
|
file = entry.getValue();
|
||||||
|
stream = new FileInputStream(file);
|
||||||
try {
|
try {
|
||||||
String bucketName = key.getBucketname();
|
String bucketName = key.getBucketname();
|
||||||
String userkey = username + "/" + ShortUIDName + "." + prefix;
|
String userkey = username + "/" + ShortUIDName + "." + prefix;
|
||||||
PutObjectRequest putObjectRequest =
|
PutObjectRequest putObjectRequest =
|
||||||
new PutObjectRequest(bucketName, userkey, file);
|
new PutObjectRequest(bucketName, userkey, stream,null);
|
||||||
PutObjectResult putObjectResult = cosClient.putObject(putObjectRequest);
|
PutObjectResult putObjectResult = cosClient.putObject(putObjectRequest);
|
||||||
} catch (CosServiceException serverException) {
|
} catch (CosServiceException serverException) {
|
||||||
returnImage.setCode("400");
|
returnImage.setCode("400");
|
||||||
@@ -47,10 +53,12 @@ public class COSImageupload {
|
|||||||
returnImage.setCode("400");
|
returnImage.setCode("400");
|
||||||
clientException.printStackTrace();
|
clientException.printStackTrace();
|
||||||
}
|
}
|
||||||
|
try {if(stream!=null){stream.close();}} catch (Exception ex) { }
|
||||||
}
|
}
|
||||||
returnImage.setCode("200");
|
returnImage.setCode("200");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
try {if(stream!=null){stream.close();}} catch (Exception ex) { }
|
||||||
|
logger.error("COS协议上传时发生异常:",e);
|
||||||
returnImage.setCode("500");
|
returnImage.setCode("500");
|
||||||
}
|
}
|
||||||
return returnImage;
|
return returnImage;
|
||||||
|
|||||||
@@ -11,6 +11,8 @@ import org.apache.commons.codec.digest.DigestUtils;
|
|||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.scheduling.annotation.Async;
|
||||||
|
import org.springframework.scheduling.annotation.EnableAsync;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
@@ -28,10 +30,8 @@ import java.util.*;
|
|||||||
@Service
|
@Service
|
||||||
public class ClientService {
|
public class ClientService {
|
||||||
private static Logger logger = LoggerFactory.getLogger(ClientService.class);
|
private static Logger logger = LoggerFactory.getLogger(ClientService.class);
|
||||||
@Autowired
|
@Autowired private ConfdataService confdataService;
|
||||||
ConfdataService confdataService;
|
@Autowired private SysConfigService sysConfigService;
|
||||||
@Autowired
|
|
||||||
SysConfigService sysConfigService;
|
|
||||||
@Autowired private UserMapper userMapper;
|
@Autowired private UserMapper userMapper;
|
||||||
@Autowired private KeysMapper keysMapper;
|
@Autowired private KeysMapper keysMapper;
|
||||||
@Autowired private UploadConfigMapper uploadConfigMapper;
|
@Autowired private UploadConfigMapper uploadConfigMapper;
|
||||||
@@ -60,31 +60,70 @@ public class ClientService {
|
|||||||
}
|
}
|
||||||
imageFileName = multipartFile.getOriginalFilename();
|
imageFileName = multipartFile.getOriginalFilename();
|
||||||
File file = SetFiles.changeFile_new(multipartFile);
|
File file = SetFiles.changeFile_new(multipartFile);
|
||||||
|
FileInputStream stream = new FileInputStream(file);
|
||||||
User u2 = new User();
|
User u2 = new User();
|
||||||
if (!file.exists() || email == null || pass == null) {
|
if (!file.exists() || email == null || pass == null) {
|
||||||
msg.setCode("4005");
|
msg.setCode("4005");
|
||||||
msg.setInfo("必要参数不能为空");
|
msg.setInfo("必要参数不能为空");
|
||||||
|
try {
|
||||||
|
if(stream!=null){stream.close();}
|
||||||
|
file.delete();
|
||||||
|
} catch (Exception e) { }
|
||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
|
if (uploadConfig.getBlacklist() != null) {
|
||||||
|
String[] iparr = uploadConfig.getBlacklist().split(";");
|
||||||
|
for (String s : iparr) {
|
||||||
|
if (s.equals(userip)) {
|
||||||
|
msg.setCode("4010");
|
||||||
|
msg.setInfo("你暂时不能上传");
|
||||||
|
try {
|
||||||
|
if(stream!=null){stream.close();}
|
||||||
|
file.delete();
|
||||||
|
} catch (Exception e) { }
|
||||||
|
return msg;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
u2.setEmail(email);
|
u2.setEmail(email);
|
||||||
u2.setPassword(Base64Encryption.encryptBASE64(pass.getBytes()));
|
u2.setPassword(Base64.getEncoder().encodeToString(pass.getBytes()));
|
||||||
User u = userMapper.getUsers(u2);
|
User u = userMapper.getUsers(u2);
|
||||||
if (null == u || u.getIsok() != 1) {
|
if (null == u || u.getIsok() != 1) {
|
||||||
msg.setCode("4006");
|
msg.setCode("4006");
|
||||||
msg.setInfo("用户信息不正确,账号异常");
|
msg.setInfo("用户信息不正确,账号异常");
|
||||||
|
try {
|
||||||
|
if(stream!=null){stream.close();}
|
||||||
|
file.delete();
|
||||||
|
} catch (Exception e) { }
|
||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
String imguid = UUID.randomUUID().toString().replace("-", "");
|
String imguid = UUID.randomUUID().toString().replace("-", "");
|
||||||
Msg msg1 = updateImgCheck(u, uploadConfig);
|
Msg msg1 = updateImgCheck(u, uploadConfig);
|
||||||
if (!msg1.getCode().equals("300")) {
|
if (!msg1.getCode().equals("300")) {
|
||||||
|
try {
|
||||||
|
if(stream!=null){stream.close();}
|
||||||
|
file.delete();
|
||||||
|
} catch (Exception e) { }
|
||||||
return msg1;
|
return msg1;
|
||||||
}
|
}
|
||||||
|
JSONObject updateJson = JSONObject.parseObject(msg1.getData().toString());
|
||||||
|
final JSONObject groupJson = updateJson.getJSONObject("group");
|
||||||
|
final Group group = groupJson.toJavaObject(Group.class);
|
||||||
|
Long memory = updateJson.getLong("memory");
|
||||||
|
Long UsedTotleMemory = updateJson.getLong("UsedTotleMemory");
|
||||||
|
Long TotleMemory = updateJson.getLong("TotleMemory");
|
||||||
|
String updatePath = updateJson.getString("updatePath");
|
||||||
|
|
||||||
sourceKeyId = group.getKeyid();
|
sourceKeyId = group.getKeyid();
|
||||||
Keys key = keysMapper.selectKeys(sourceKeyId);
|
Keys key = keysMapper.selectKeys(sourceKeyId);
|
||||||
Long tmp = (memory == -1 ? -2 : UsedTotleMemory);
|
Long tmp = (memory == -1 ? -2 : UsedTotleMemory);
|
||||||
if (tmp >= memory) {
|
if (tmp >= memory) {
|
||||||
msg.setCode("4007");
|
msg.setCode("4007");
|
||||||
msg.setInfo(u == null ? "游客空间已用尽" : "您的可用空间不足");
|
msg.setInfo(u == null ? "游客空间已用尽" : "您的可用空间不足");
|
||||||
|
try {
|
||||||
|
if(stream!=null){stream.close();}
|
||||||
|
file.delete();
|
||||||
|
} catch (Exception e) { }
|
||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
if (file.length() > TotleMemory) {
|
if (file.length() > TotleMemory) {
|
||||||
@@ -92,63 +131,67 @@ public class ClientService {
|
|||||||
System.err.println("最大限制:" + TotleMemory);
|
System.err.println("最大限制:" + TotleMemory);
|
||||||
msg.setCode("4008");
|
msg.setCode("4008");
|
||||||
msg.setInfo("图像超出系统限制大小");
|
msg.setInfo("图像超出系统限制大小");
|
||||||
|
try {
|
||||||
|
if(stream!=null){stream.close();}
|
||||||
|
file.delete();
|
||||||
|
} catch (Exception e) { }
|
||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
FileInputStream fis = null;
|
md5key = DigestUtils.md5Hex(stream);
|
||||||
try {
|
// FileInputStream fis = null;
|
||||||
fis = new FileInputStream(file);
|
// try {
|
||||||
md5key = DigestUtils.md5Hex(fis);
|
// fis = new FileInputStream(file);
|
||||||
} catch (Exception e) {
|
// md5key = DigestUtils.md5Hex(fis);
|
||||||
e.printStackTrace();
|
// } catch (Exception e) {
|
||||||
System.out.println("未获取到图片的MD5,成成UUID");
|
// logger.error("未获取到图片的MD5,成成UUID异常:",e);
|
||||||
}finally{
|
// }finally{
|
||||||
try {
|
// try {
|
||||||
if (null != fis)
|
// if (null != fis)
|
||||||
fis.close();
|
// fis.close();
|
||||||
} catch (Exception e) {
|
// } catch (Exception e) {
|
||||||
e.printStackTrace();
|
// logger.error("ClientService-110异常",e);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
Msg fileMiME = TypeDict.FileMiME(file);
|
Msg fileMiME = TypeDict.FileMiME(stream);
|
||||||
if (!fileMiME.getCode().equals("200")) {
|
if (!fileMiME.getCode().equals("200")) {
|
||||||
msg.setCode("4009");
|
msg.setCode("4009");
|
||||||
msg.setInfo(fileMiME.getInfo());
|
msg.setInfo(fileMiME.getInfo());
|
||||||
|
try {
|
||||||
|
if(stream!=null){stream.close();}
|
||||||
|
file.delete();
|
||||||
|
} catch (Exception e) { }
|
||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
if (md5key == null || md5key.equals("")) {
|
if (md5key == null || md5key.equals("")) {
|
||||||
md5key = UUID.randomUUID().toString().replace("-", "");
|
md5key = UUID.randomUUID().toString().replace("-", "");
|
||||||
}
|
}
|
||||||
String prefix = file.getName().substring(file.getName().lastIndexOf(".") + 1);
|
String prefix = file.getName().substring(file.getName().lastIndexOf(".") + 1);
|
||||||
if (uploadConfig.getBlacklist() != null) {
|
try {if(stream!=null){stream.close();}} catch (Exception ex) { }
|
||||||
String[] iparr = uploadConfig.getBlacklist().split(";");
|
|
||||||
for (String s : iparr) {
|
|
||||||
if (s.equals(userip)) {
|
|
||||||
msg.setCode("4010");
|
|
||||||
msg.setInfo("你暂时不能上传");
|
|
||||||
return msg;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Images imgObj = new Images();
|
Images imgObj = new Images();
|
||||||
String imgnameEd = null;
|
String imgnameEd = null;
|
||||||
Map<Map<String, String>, File> map = new HashMap<>();
|
Map<Map<String, String>, File> map = new HashMap<>();
|
||||||
|
String shortUuid_y = SetText.getShortUuid();
|
||||||
|
String shortUuid_s = SetText.getShortUuid();
|
||||||
if (file.exists()) {
|
if (file.exists()) {
|
||||||
Map<String, String> m1 = new HashMap<>();
|
Map<String, String> m1 = new HashMap<>();
|
||||||
String shortUuid_y = SetText.getShortUuid();
|
|
||||||
m1.put("prefix", prefix);
|
m1.put("prefix", prefix);
|
||||||
m1.put("name", shortUuid_y);
|
m1.put("name", shortUuid_y);
|
||||||
map.put(m1, file);
|
map.put(m1, file);
|
||||||
imgnameEd = updatePath + "/" + shortUuid_y + "." + prefix;
|
imgnameEd = updatePath + "/" + shortUuid_y + "." + prefix;
|
||||||
imgObj.setImgname(imgnameEd);
|
imgObj.setImgname(imgnameEd);
|
||||||
if (key.getStorageType().equals(5)) {
|
if (key.getStorageType().equals(5)) {
|
||||||
imgObj.setImgurl(key.getRequestAddress() + "/ota/" + imgnameEd);
|
imgObj.setImgurl(confdata.getString("domain") + "/ota/" + imgnameEd);
|
||||||
} else {
|
} else if(key.getStorageType().equals(9) && key.getSysTransmit()){
|
||||||
|
imgObj.setImgurl(confdata.getString("domain") + "/w/" + shortUuid_y);
|
||||||
|
}else {
|
||||||
imgObj.setImgurl(key.getRequestAddress() + "/" + imgnameEd);
|
imgObj.setImgurl(key.getRequestAddress() + "/" + imgnameEd);
|
||||||
}
|
}
|
||||||
imgObj.setSizes(Long.toString(file.length()));
|
imgObj.setSizes(Long.toString(file.length()));
|
||||||
}else{
|
}else{
|
||||||
msg.setInfo("未获取到指定图像:110503");
|
msg.setInfo("未获取到指定图像:110503");
|
||||||
msg.setCode("110503");
|
msg.setCode("110503");
|
||||||
|
file.delete();
|
||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
imgObj.setUpdatetime(df.format(new Date()));
|
imgObj.setUpdatetime(df.format(new Date()));
|
||||||
@@ -167,9 +210,12 @@ public class ClientService {
|
|||||||
imgObj.setMd5key(md5key);
|
imgObj.setMd5key(md5key);
|
||||||
imgObj.setImguid(imguid);
|
imgObj.setImguid(imguid);
|
||||||
imgObj.setFormat(fileMiME.getData().toString());
|
imgObj.setFormat(fileMiME.getData().toString());
|
||||||
|
imgObj.setShortlink(shortUuid_y);
|
||||||
|
imgObj.setBrieflink(shortUuid_s);
|
||||||
imgObj.setIdname(imageFileName);
|
imgObj.setIdname(imageFileName);
|
||||||
Msg insertRet = imgServiceImpl.insertImgDataForCheck(imgObj,u,confdata,file.getName());
|
Msg insertRet = imgServiceImpl.insertImgDataForCheck(imgObj,u,confdata,file.getName());
|
||||||
if (insertRet.getCode().equals("000")) {
|
if (insertRet.getCode().equals("000")) {
|
||||||
|
file.delete();
|
||||||
return insertRet;
|
return insertRet;
|
||||||
}
|
}
|
||||||
long stime = System.currentTimeMillis();
|
long stime = System.currentTimeMillis();
|
||||||
@@ -185,43 +231,48 @@ public class ClientService {
|
|||||||
imgServiceImpl.deleimgForImgUid(imgObj.getImguid());
|
imgServiceImpl.deleimgForImgUid(imgObj.getImguid());
|
||||||
msg.setCode("5001");
|
msg.setCode("5001");
|
||||||
msg.setInfo("上传服务内部错误");
|
msg.setInfo("上传服务内部错误");
|
||||||
|
file.delete();
|
||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
file.delete();
|
file.delete();
|
||||||
msg.setData(jsonObject);
|
msg.setData(jsonObject);
|
||||||
return msg;
|
return msg;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
|
||||||
msg.setCode("5001");
|
msg.setCode("5001");
|
||||||
msg.setInfo("Error for server:500");
|
msg.setInfo("Error for server:500");
|
||||||
|
logger.error("ClientService:Error for server-202行异常",e);
|
||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Group group;
|
// public static Group group;
|
||||||
public static Long memory;
|
// public static Long memory;
|
||||||
public static Long TotleMemory;
|
// public static Long TotleMemory;
|
||||||
public static Long UsedTotleMemory;
|
// public static Long UsedTotleMemory;
|
||||||
public static String updatePath = "tourist";
|
// public static String updatePath = "tourist";
|
||||||
|
|
||||||
private Msg updateImgCheck(User user, UploadConfig uploadConfig) {
|
private Msg updateImgCheck(User user, UploadConfig uploadConfig) {
|
||||||
Msg msg = new Msg();
|
Msg msg = new Msg();
|
||||||
java.text.DateFormat dateFormat = null;
|
JSONObject jsonObject = new JSONObject();
|
||||||
|
String updatePath = "tourist";
|
||||||
try {
|
try {
|
||||||
dateFormat = new SimpleDateFormat("yyyy/MM/dd");
|
Group group = GetCurrentSource.GetSource(user == null ? null : user.getId());
|
||||||
|
jsonObject.put("group",group);
|
||||||
if (user == null) {
|
if (user == null) {
|
||||||
if (uploadConfig.getIsupdate() != 1) {
|
if (uploadConfig.getIsupdate() != 1) {
|
||||||
msg.setCode("1000");
|
msg.setCode("1000");
|
||||||
msg.setInfo("系统已禁用游客上传");
|
msg.setInfo("系统已禁用游客上传");
|
||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
group = GetCurrentSource.GetSource(null);
|
Long memory = Long.valueOf(uploadConfig.getVisitormemory()); // 单位 B 游客设置总量
|
||||||
memory = Long.valueOf(uploadConfig.getVisitormemory()); // 单位 B 游客设置总量
|
Long TotleMemory = Long.valueOf(uploadConfig.getFilesizetourists()); // 单位 B 游客单文件大小
|
||||||
TotleMemory = Long.valueOf(uploadConfig.getFilesizetourists()); // 单位 B 游客单文件大小
|
Long UsedTotleMemory =
|
||||||
UsedTotleMemory =
|
|
||||||
imgServiceImpl.getusermemory(0) == null
|
imgServiceImpl.getusermemory(0) == null
|
||||||
? 0L
|
? 0L
|
||||||
: imgServiceImpl.getusermemory(0); // 单位 B
|
: imgServiceImpl.getusermemory(0); // 单位 B
|
||||||
|
jsonObject.put("memory",memory);
|
||||||
|
jsonObject.put("TotleMemory",TotleMemory);
|
||||||
|
jsonObject.put("UsedTotleMemory",UsedTotleMemory);
|
||||||
} else {
|
} else {
|
||||||
// 判断用户能不能上传
|
// 判断用户能不能上传
|
||||||
if (uploadConfig.getUserclose() != 1) {
|
if (uploadConfig.getUserclose() != 1) {
|
||||||
@@ -230,21 +281,24 @@ public class ClientService {
|
|||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
updatePath = user.getUsername();
|
updatePath = user.getUsername();
|
||||||
group = GetCurrentSource.GetSource(user.getId());
|
Long memory = Long.valueOf(user.getMemory()); // 单位 B
|
||||||
memory = Long.valueOf(user.getMemory()); // 单位 B
|
Long TotleMemory = Long.valueOf(uploadConfig.getFilesizeuser()); // 单位 B
|
||||||
TotleMemory = Long.valueOf(uploadConfig.getFilesizeuser()); // 单位 B
|
Long UsedTotleMemory =
|
||||||
UsedTotleMemory =
|
|
||||||
imgServiceImpl.getusermemory(user.getId()) == null
|
imgServiceImpl.getusermemory(user.getId()) == null
|
||||||
? 0L
|
? 0L
|
||||||
: imgServiceImpl.getusermemory(user.getId()); // 单位 B
|
: imgServiceImpl.getusermemory(user.getId()); // 单位 B
|
||||||
|
jsonObject.put("memory",memory);
|
||||||
|
jsonObject.put("TotleMemory",TotleMemory);
|
||||||
|
jsonObject.put("UsedTotleMemory",UsedTotleMemory);
|
||||||
}
|
}
|
||||||
// 判断上传的图片目录结构类型
|
// 判断上传的图片目录结构类型
|
||||||
if (uploadConfig.getUrltype() == 2) {
|
if (uploadConfig.getUrltype() == 2) {
|
||||||
updatePath = dateFormat.format(new Date());
|
jsonObject.put("updatePath",updatePath);
|
||||||
|
msg.setData(jsonObject);
|
||||||
}
|
}
|
||||||
msg.setCode("300");
|
msg.setCode("300");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
logger.error("ClientService-异常",e);
|
||||||
msg.setCode("500");
|
msg.setCode("500");
|
||||||
}
|
}
|
||||||
return msg;
|
return msg;
|
||||||
|
|||||||
@@ -7,15 +7,19 @@ import cn.hutool.extra.ftp.Ftp;
|
|||||||
import cn.hutool.extra.ftp.FtpMode;
|
import cn.hutool.extra.ftp.FtpMode;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.apache.commons.net.ftp.FTP;
|
import org.apache.commons.net.ftp.FTP;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.io.FileInputStream;
|
||||||
import java.nio.charset.Charset;
|
import java.nio.charset.Charset;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class FtpServiceImpl {
|
public class FtpServiceImpl {
|
||||||
|
private static Logger logger = LoggerFactory.getLogger(FtpServiceImpl.class);
|
||||||
private Keys key;
|
private Keys key;
|
||||||
|
|
||||||
public static int Initialize(Keys k) {
|
public static int Initialize(Keys k) {
|
||||||
@@ -66,22 +70,26 @@ public class FtpServiceImpl {
|
|||||||
return returnImage;
|
return returnImage;
|
||||||
}
|
}
|
||||||
File file = null;
|
File file = null;
|
||||||
|
FileInputStream stream = null;
|
||||||
try {
|
try {
|
||||||
for (Map.Entry<Map<String, String>, File> entry : fileMap.entrySet()) {
|
for (Map.Entry<Map<String, String>, File> entry : fileMap.entrySet()) {
|
||||||
String prefix = entry.getKey().get("prefix");
|
String prefix = entry.getKey().get("prefix");
|
||||||
String ShortUIDName = entry.getKey().get("name");
|
String ShortUIDName = entry.getKey().get("name");
|
||||||
file = entry.getValue();
|
file = entry.getValue();
|
||||||
|
stream = new FileInputStream(file);
|
||||||
boolean isUpload = ftp.upload(
|
boolean isUpload = ftp.upload(
|
||||||
"/" + username,
|
"/" + username,
|
||||||
ShortUIDName + "." + prefix,
|
ShortUIDName + "." + prefix,
|
||||||
file);
|
stream);
|
||||||
if (!isUpload) {
|
if (!isUpload) {
|
||||||
returnImage.setCode("400");
|
returnImage.setCode("400");
|
||||||
}
|
}
|
||||||
|
try {if(stream!=null){stream.close();}} catch (Exception e) { }
|
||||||
}
|
}
|
||||||
returnImage.setCode("200");
|
returnImage.setCode("200");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
try {if(stream!=null){stream.close();}} catch (Exception ex) { }
|
||||||
|
logger.error("FTP发生异常:",e);
|
||||||
returnImage.setCode("500");
|
returnImage.setCode("500");
|
||||||
}
|
}
|
||||||
return returnImage;
|
return returnImage;
|
||||||
|
|||||||
@@ -46,6 +46,16 @@ public class ImgServiceImpl implements ImgService {
|
|||||||
return imgMapper.selectByPrimaryKey(id);
|
return imgMapper.selectByPrimaryKey(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Images selectImgByBrieflink(String brieflink) {
|
||||||
|
return imgMapper.selectImgByBrieflink(brieflink);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Images selectImgByShortlink(String shortlink) {
|
||||||
|
return imgMapper.selectImgByShortlink(shortlink);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Integer counts(Integer userid) {
|
public Integer counts(Integer userid) {
|
||||||
// TODO Auto-generated method stub
|
// TODO Auto-generated method stub
|
||||||
@@ -131,10 +141,9 @@ public class ImgServiceImpl implements ImgService {
|
|||||||
if(sysConfig.getCheckduplicate().equals("1")){
|
if(sysConfig.getCheckduplicate().equals("1")){
|
||||||
//查重
|
//查重
|
||||||
Images img = new Images();
|
Images img = new Images();
|
||||||
img.setUserid(user.getId());
|
img.setUserid(user==null?0:user.getId());
|
||||||
img.setMd5key(images.getMd5key());
|
img.setMd5key(images.getMd5key());
|
||||||
List<Images> list = imgMapper.selectImgUrlByMD5(img);
|
List<Images> list = imgMapper.selectImgUrlByMD5(img);
|
||||||
jsonObject.put("url", list.get(0).getImgurl());
|
|
||||||
if (list.size() > 0) {
|
if (list.size() > 0) {
|
||||||
jsonObject.put("url", list.get(0).getImgurl());
|
jsonObject.put("url", list.get(0).getImgurl());
|
||||||
jsonObject.put("name", flilename);
|
jsonObject.put("name", flilename);
|
||||||
|
|||||||
@@ -58,6 +58,8 @@ public class InitializationStorage implements CommandLineRunner {
|
|||||||
FtpServiceImpl.Initialize(key);
|
FtpServiceImpl.Initialize(key);
|
||||||
}else if(key.getStorageType()==8){
|
}else if(key.getStorageType()==8){
|
||||||
S3Imageupload.Initialize(key);
|
S3Imageupload.Initialize(key);
|
||||||
|
}else if(key.getStorageType()==9){
|
||||||
|
WebDAVImageupload.Initialize(key);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,13 +14,17 @@ import com.qiniu.storage.model.DefaultPutRet;
|
|||||||
import com.qiniu.storage.model.FileInfo;
|
import com.qiniu.storage.model.FileInfo;
|
||||||
import com.qiniu.util.Auth;
|
import com.qiniu.util.Auth;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.io.FileInputStream;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class KODOImageupload {
|
public class KODOImageupload {
|
||||||
|
private static Logger logger = LoggerFactory.getLogger(KODOImageupload.class);
|
||||||
static String upToken;
|
static String upToken;
|
||||||
static BucketManager bucketManager;
|
static BucketManager bucketManager;
|
||||||
static Keys key;
|
static Keys key;
|
||||||
@@ -33,15 +37,15 @@ public class KODOImageupload {
|
|||||||
Auth auth = Auth.create(key.getAccessKey(), key.getAccessSecret());
|
Auth auth = Auth.create(key.getAccessKey(), key.getAccessSecret());
|
||||||
String upToken = auth.uploadToken(key.getBucketname(), null, 7200, null);
|
String upToken = auth.uploadToken(key.getBucketname(), null, 7200, null);
|
||||||
File file = null;
|
File file = null;
|
||||||
|
FileInputStream stream = null;
|
||||||
try {
|
try {
|
||||||
for (Map.Entry<Map<String, String>, File> entry : fileMap.entrySet()) {
|
for (Map.Entry<Map<String, String>, File> entry : fileMap.entrySet()) {
|
||||||
String prefix = entry.getKey().get("prefix");
|
String prefix = entry.getKey().get("prefix");
|
||||||
String ShortUIDName = entry.getKey().get("name");
|
String ShortUIDName = entry.getKey().get("name");
|
||||||
file = entry.getValue();
|
file = entry.getValue();
|
||||||
|
stream = new FileInputStream(file);
|
||||||
try {
|
try {
|
||||||
Response response =
|
Response response = uploadManager.put(stream,username + "/" + ShortUIDName + "." + prefix, upToken, null, null);
|
||||||
uploadManager.put(
|
|
||||||
file, username + "/" + ShortUIDName + "." + prefix, upToken);
|
|
||||||
DefaultPutRet putRet =
|
DefaultPutRet putRet =
|
||||||
new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
|
new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
|
||||||
|
|
||||||
@@ -54,10 +58,12 @@ public class KODOImageupload {
|
|||||||
} catch (QiniuException ex2) {
|
} catch (QiniuException ex2) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
try {if(stream!=null){stream.close();}} catch (Exception ex) { }
|
||||||
}
|
}
|
||||||
returnImage.setCode("200");
|
returnImage.setCode("200");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
try {if(stream!=null){stream.close();}} catch (Exception ex) { }
|
||||||
|
logger.error("KODO发生异常:",e);
|
||||||
returnImage.setCode("500");
|
returnImage.setCode("500");
|
||||||
}
|
}
|
||||||
return returnImage;
|
return returnImage;
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package cn.hellohao.service.impl;
|
|||||||
|
|
||||||
import cn.hellohao.pojo.Msg;
|
import cn.hellohao.pojo.Msg;
|
||||||
import cn.hellohao.utils.Print;
|
import cn.hellohao.utils.Print;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@@ -30,6 +31,8 @@ public class KeysServiceImpl implements KeysService {
|
|||||||
private FtpServiceImpl ftpService;
|
private FtpServiceImpl ftpService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private S3Imageupload s3Imageupload;
|
private S3Imageupload s3Imageupload;
|
||||||
|
@Autowired
|
||||||
|
private WebDAVImageupload webDAVImageupload;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -51,6 +54,29 @@ public class KeysServiceImpl implements KeysService {
|
|||||||
public Msg updateKey(Keys key) {
|
public Msg updateKey(Keys key) {
|
||||||
Msg msg = new Msg();
|
Msg msg = new Msg();
|
||||||
Integer ret = -2;
|
Integer ret = -2;
|
||||||
|
//修正一边数据格式,去除末尾的斜杠
|
||||||
|
if(key.getStorageType()==9 || key.getStorageType()==8){
|
||||||
|
//s3或者webdav
|
||||||
|
if(!StringUtils.isBlank(key.getRootPath()) && !key.getRootPath().equals("/")){
|
||||||
|
if (key.getRootPath().endsWith("/")) {
|
||||||
|
String rootpath = key.getRootPath();
|
||||||
|
key.setRootPath(rootpath.substring(0, rootpath.length() - 1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!StringUtils.isBlank(key.getEndpoint())){
|
||||||
|
final String endpoint = key.getEndpoint();
|
||||||
|
if (endpoint.endsWith("/")) {
|
||||||
|
key.setEndpoint(endpoint.substring(0, endpoint.length() - 1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!StringUtils.isBlank(key.getRequestAddress())){
|
||||||
|
final String requestAddress = key.getRequestAddress();
|
||||||
|
if (requestAddress.endsWith("/")) {
|
||||||
|
key.setRequestAddress(requestAddress.substring(0, requestAddress.length() - 1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(key.getStorageType()==1){
|
if(key.getStorageType()==1){
|
||||||
ret =nOSImageupload.Initialize(key);
|
ret =nOSImageupload.Initialize(key);
|
||||||
}else if (key.getStorageType()==2){
|
}else if (key.getStorageType()==2){
|
||||||
@@ -67,6 +93,8 @@ public class KeysServiceImpl implements KeysService {
|
|||||||
ret = ftpService.Initialize(key);
|
ret = ftpService.Initialize(key);
|
||||||
}else if(key.getStorageType()==8){
|
}else if(key.getStorageType()==8){
|
||||||
ret = s3Imageupload.Initialize(key);
|
ret = s3Imageupload.Initialize(key);
|
||||||
|
}else if(key.getStorageType()==9){
|
||||||
|
ret = webDAVImageupload.Initialize(key);
|
||||||
}else{
|
}else{
|
||||||
Print.Normal("为获取到存储参数,或者使用存储源是本地的。");
|
Print.Normal("为获取到存储参数,或者使用存储源是本地的。");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,8 @@ import com.netease.cloud.auth.Credentials;
|
|||||||
import com.netease.cloud.services.nos.NosClient;
|
import com.netease.cloud.services.nos.NosClient;
|
||||||
import com.netease.cloud.services.nos.model.ObjectListing;
|
import com.netease.cloud.services.nos.model.ObjectListing;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|||||||
@@ -11,13 +11,17 @@ import com.aliyun.oss.model.ObjectListing;
|
|||||||
import com.aliyun.oss.model.ObjectMetadata;
|
import com.aliyun.oss.model.ObjectMetadata;
|
||||||
import com.aliyun.oss.model.PutObjectRequest;
|
import com.aliyun.oss.model.PutObjectRequest;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.io.FileInputStream;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class OSSImageupload {
|
public class OSSImageupload {
|
||||||
|
private static Logger logger = LoggerFactory.getLogger(OSSImageupload.class);
|
||||||
static OSS ossClient;
|
static OSS ossClient;
|
||||||
static Keys key;
|
static Keys key;
|
||||||
|
|
||||||
@@ -25,6 +29,7 @@ public class OSSImageupload {
|
|||||||
Map<Map<String, String>, File> fileMap, String username, Integer keyID) {
|
Map<Map<String, String>, File> fileMap, String username, Integer keyID) {
|
||||||
ReturnImage returnImage = new ReturnImage();
|
ReturnImage returnImage = new ReturnImage();
|
||||||
File file = null;
|
File file = null;
|
||||||
|
FileInputStream stream = null;
|
||||||
ObjectMetadata meta = new ObjectMetadata();
|
ObjectMetadata meta = new ObjectMetadata();
|
||||||
meta.setHeader("Content-Disposition", "inline");
|
meta.setHeader("Content-Disposition", "inline");
|
||||||
try {
|
try {
|
||||||
@@ -32,19 +37,22 @@ public class OSSImageupload {
|
|||||||
String prefix = entry.getKey().get("prefix");
|
String prefix = entry.getKey().get("prefix");
|
||||||
String ShortUIDName = entry.getKey().get("name");
|
String ShortUIDName = entry.getKey().get("name");
|
||||||
file = entry.getValue();
|
file = entry.getValue();
|
||||||
Msg fileMiME = TypeDict.FileMiME(file);
|
stream = new FileInputStream(file);
|
||||||
|
Msg fileMiME = TypeDict.FileMiME(stream);
|
||||||
meta.setHeader("content-type", fileMiME.getData().toString());
|
meta.setHeader("content-type", fileMiME.getData().toString());
|
||||||
PutObjectRequest putObjectRequest =
|
PutObjectRequest putObjectRequest =
|
||||||
new PutObjectRequest(
|
new PutObjectRequest(
|
||||||
key.getBucketname(),
|
key.getBucketname(),
|
||||||
username + "/" + ShortUIDName + "." + prefix,
|
username + "/" + ShortUIDName + "." + prefix,
|
||||||
file,
|
stream,
|
||||||
meta);
|
meta);
|
||||||
ossClient.putObject(putObjectRequest);
|
ossClient.putObject(putObjectRequest);
|
||||||
|
try {if(stream!=null){stream.close();}} catch (Exception e) { }
|
||||||
}
|
}
|
||||||
returnImage.setCode("200");
|
returnImage.setCode("200");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
try {if(stream!=null){stream.close();}} catch (Exception ex) { }
|
||||||
|
logger.error("OSS上传发生异常:",e);
|
||||||
returnImage.setCode("500");
|
returnImage.setCode("500");
|
||||||
}
|
}
|
||||||
return returnImage;
|
return returnImage;
|
||||||
|
|||||||
@@ -12,16 +12,14 @@ import com.amazonaws.client.builder.AwsClientBuilder;
|
|||||||
import com.amazonaws.services.s3.AmazonS3;
|
import com.amazonaws.services.s3.AmazonS3;
|
||||||
import com.amazonaws.services.s3.AmazonS3Client;
|
import com.amazonaws.services.s3.AmazonS3Client;
|
||||||
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
|
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
|
||||||
import com.amazonaws.services.s3.model.Bucket;
|
import com.amazonaws.services.s3.model.*;
|
||||||
import com.amazonaws.services.s3.model.DeleteObjectRequest;
|
|
||||||
import com.amazonaws.services.s3.model.ObjectListing;
|
|
||||||
import com.amazonaws.services.s3.model.PutObjectRequest;
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.io.FileInputStream;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@@ -51,21 +49,28 @@ public class S3Imageupload {
|
|||||||
return returnImage;
|
return returnImage;
|
||||||
}
|
}
|
||||||
File file = null;
|
File file = null;
|
||||||
|
FileInputStream stream = null;
|
||||||
try {
|
try {
|
||||||
for (Map.Entry<Map<String, String>, File> entry : fileMap.entrySet()) {
|
for (Map.Entry<Map<String, String>, File> entry : fileMap.entrySet()) {
|
||||||
String prefix = entry.getKey().get("prefix");
|
String prefix = entry.getKey().get("prefix");
|
||||||
String ShortUIDName = entry.getKey().get("name");
|
String ShortUIDName = entry.getKey().get("name");
|
||||||
file = entry.getValue();
|
file = entry.getValue();
|
||||||
|
stream = new FileInputStream(file);
|
||||||
|
//解决存储源不能浏览图片的问题
|
||||||
|
// ObjectMetadata objectMetadata = new ObjectMetadata();
|
||||||
|
// objectMetadata.addUserMetadata();
|
||||||
AS3.putObject(
|
AS3.putObject(
|
||||||
new PutObjectRequest(
|
new PutObjectRequest(
|
||||||
KEY.getBucketname(),
|
KEY.getBucketname(),
|
||||||
username + "/" + ShortUIDName + "." + prefix,
|
username + "/" + ShortUIDName + "." + prefix,
|
||||||
file));
|
stream,null));
|
||||||
// S3Object object = s3.getObject( new GetObjectRequest( key.getBucketname(),
|
// S3Object object = s3.getObject( new GetObjectRequest( key.getBucketname(),
|
||||||
|
try {if(stream!=null){stream.close();}} catch (Exception e) { }
|
||||||
}
|
}
|
||||||
returnImage.setCode("200");
|
returnImage.setCode("200");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
try {if(stream!=null){stream.close();}} catch (Exception ex) { }
|
||||||
|
logger.error("S3协议上传发生异常:",e);
|
||||||
returnImage.setCode("500");
|
returnImage.setCode("500");
|
||||||
}
|
}
|
||||||
return returnImage;
|
return returnImage;
|
||||||
|
|||||||
@@ -1,102 +0,0 @@
|
|||||||
package cn.hellohao.service.impl;
|
|
||||||
|
|
||||||
import cn.hellohao.pojo.Images;
|
|
||||||
import cn.hellohao.pojo.Keys;
|
|
||||||
import cn.hellohao.pojo.Msg;
|
|
||||||
import cn.hellohao.pojo.ReturnImage;
|
|
||||||
import cn.hellohao.utils.SetText;
|
|
||||||
import cn.hellohao.utils.TypeDict;
|
|
||||||
import com.UpYun;
|
|
||||||
import com.aliyun.oss.model.ObjectMetadata;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
@Service
|
|
||||||
public class UFileImageupload1 {
|
|
||||||
static UpYun uFile;
|
|
||||||
static Keys key;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* 废弃方法待补位
|
|
||||||
* */
|
|
||||||
|
|
||||||
public ReturnImage ImageuploadUFile(
|
|
||||||
Map<Map<String, String>, File> fileMap, String username, Integer keyID) {
|
|
||||||
ReturnImage returnImage = new ReturnImage();
|
|
||||||
File file = null;
|
|
||||||
ObjectMetadata meta = new ObjectMetadata();
|
|
||||||
meta.setHeader("Content-Disposition", "inline");
|
|
||||||
try {
|
|
||||||
for (Map.Entry<Map<String, String>, File> entry : fileMap.entrySet()) {
|
|
||||||
String ShortUID = SetText.getShortUuid();
|
|
||||||
file = entry.getValue();
|
|
||||||
Msg fileMiME = TypeDict.FileMiME(file);
|
|
||||||
meta.setHeader("content-type", fileMiME.getData().toString());
|
|
||||||
uFile.setContentMD5(UpYun.md5(file));
|
|
||||||
boolean result =
|
|
||||||
uFile.writeFile(
|
|
||||||
username + "/" + ShortUID + "." + entry.getKey(), file, true);
|
|
||||||
if (result) {
|
|
||||||
returnImage.setImgname(username + "/" + ShortUID + "." + entry.getKey());
|
|
||||||
returnImage.setImgurl(
|
|
||||||
key.getRequestAddress()
|
|
||||||
+ "/"
|
|
||||||
+ username
|
|
||||||
+ "/"
|
|
||||||
+ ShortUID
|
|
||||||
+ "."
|
|
||||||
+ entry.getKey());
|
|
||||||
returnImage.setImgSize(entry.getValue().length());
|
|
||||||
returnImage.setCode("200");
|
|
||||||
} else {
|
|
||||||
returnImage.setCode("400");
|
|
||||||
System.err.println("上传失败");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
returnImage.setCode("500");
|
|
||||||
}
|
|
||||||
returnImage.setCode("500");
|
|
||||||
return returnImage;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Integer Initialize(Keys k) {
|
|
||||||
int ret = -1;
|
|
||||||
if (k.getAccessSecret() != null
|
|
||||||
&& k.getAccessKey() != null
|
|
||||||
&& k.getBucketname() != null
|
|
||||||
&& k.getRequestAddress() != null) {
|
|
||||||
if (!k.getAccessSecret().equals("")
|
|
||||||
&& !k.getAccessKey().equals("")
|
|
||||||
&& !k.getBucketname().equals("")
|
|
||||||
&& !k.getRequestAddress().equals("")) {
|
|
||||||
UpYun ufObj = new UpYun(k.getBucketname(), k.getAccessKey(), k.getAccessSecret());
|
|
||||||
List<UpYun.FolderItem> items = null;
|
|
||||||
try {
|
|
||||||
items = ufObj.readDir("/", null);
|
|
||||||
ret = 1;
|
|
||||||
uFile = ufObj;
|
|
||||||
key = k;
|
|
||||||
} catch (Exception e) {
|
|
||||||
System.out.println("UFile Object Is null");
|
|
||||||
ret = -1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean delUFile(Integer keyID, Images images) {
|
|
||||||
boolean b = true;
|
|
||||||
try {
|
|
||||||
boolean result = uFile.deleteFile(images.getImgname(), null);
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
b = false;
|
|
||||||
}
|
|
||||||
return b;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -8,14 +8,18 @@ import cn.hellohao.utils.TypeDict;
|
|||||||
import com.UpYun;
|
import com.UpYun;
|
||||||
import com.aliyun.oss.model.ObjectMetadata;
|
import com.aliyun.oss.model.ObjectMetadata;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.io.FileInputStream;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class USSImageupload {
|
public class USSImageupload {
|
||||||
|
private static Logger logger = LoggerFactory.getLogger(USSImageupload.class);
|
||||||
static UpYun upyun;
|
static UpYun upyun;
|
||||||
static Keys key;
|
static Keys key;
|
||||||
|
|
||||||
@@ -23,6 +27,7 @@ public class USSImageupload {
|
|||||||
Map<Map<String, String>, File> fileMap, String username, Integer keyID) {
|
Map<Map<String, String>, File> fileMap, String username, Integer keyID) {
|
||||||
ReturnImage returnImage = new ReturnImage();
|
ReturnImage returnImage = new ReturnImage();
|
||||||
File file = null;
|
File file = null;
|
||||||
|
FileInputStream stream = null;
|
||||||
ObjectMetadata meta = new ObjectMetadata();
|
ObjectMetadata meta = new ObjectMetadata();
|
||||||
meta.setHeader("Content-Disposition", "inline");
|
meta.setHeader("Content-Disposition", "inline");
|
||||||
try {
|
try {
|
||||||
@@ -30,21 +35,24 @@ public class USSImageupload {
|
|||||||
String prefix = entry.getKey().get("prefix");
|
String prefix = entry.getKey().get("prefix");
|
||||||
String ShortUIDName = entry.getKey().get("name");
|
String ShortUIDName = entry.getKey().get("name");
|
||||||
file = entry.getValue();
|
file = entry.getValue();
|
||||||
Msg fileMiME = TypeDict.FileMiME(file);
|
stream = new FileInputStream(file);
|
||||||
|
Msg fileMiME = TypeDict.FileMiME(stream);
|
||||||
meta.setHeader("content-type", fileMiME.getData().toString());
|
meta.setHeader("content-type", fileMiME.getData().toString());
|
||||||
upyun.setContentMD5(UpYun.md5(file));
|
upyun.setContentMD5(UpYun.md5(file));
|
||||||
boolean result =
|
boolean result =
|
||||||
upyun.writeFile(username + "/" + ShortUIDName + "." + prefix, file, true);
|
upyun.writeFile(username + "/" + ShortUIDName + "." + prefix, stream, true, null);
|
||||||
if (result) {
|
if (result) {
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
System.err.println("上传失败");
|
System.err.println("上传失败");
|
||||||
returnImage.setCode("400");
|
returnImage.setCode("400");
|
||||||
}
|
}
|
||||||
|
try {if(stream!=null){stream.close();}} catch (Exception e) { }
|
||||||
}
|
}
|
||||||
returnImage.setCode("200");
|
returnImage.setCode("200");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
try {if(stream!=null){stream.close();}} catch (Exception ex) { }
|
||||||
|
logger.error("OSS上传发生异常:",e);
|
||||||
returnImage.setCode("500");
|
returnImage.setCode("500");
|
||||||
}
|
}
|
||||||
return returnImage;
|
return returnImage;
|
||||||
|
|||||||
@@ -18,12 +18,17 @@ import org.apache.shiro.subject.Subject;
|
|||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.scheduling.annotation.Async;
|
||||||
|
import org.springframework.scheduling.annotation.EnableAsync;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
|
import java.io.IOException;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
|
||||||
@@ -77,47 +82,23 @@ public class UploadServicel {
|
|||||||
return imgData;
|
return imgData;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
FileInputStream stream = new FileInputStream(file);
|
||||||
String imguid = UUID.randomUUID().toString().replace("-", "");
|
String imguid = UUID.randomUUID().toString().replace("-", "");
|
||||||
Msg msg1 = updateImgCheck(u, uploadConfig);
|
Msg msg1 = updateImgCheck(u, uploadConfig);
|
||||||
if (!msg1.getCode().equals("300")) {
|
if (!msg1.getCode().equals("300")) {
|
||||||
|
try {
|
||||||
|
if(stream!=null){stream.close();}
|
||||||
|
file.delete();
|
||||||
|
} catch (Exception e) { }
|
||||||
return msg1;
|
return msg1;
|
||||||
}
|
}
|
||||||
sourceKeyId = group.getKeyid();
|
JSONObject updateJson = JSONObject.parseObject(msg1.getData().toString());
|
||||||
Keys key = keysMapper.selectKeys(sourceKeyId);
|
final JSONObject groupJson = updateJson.getJSONObject("group");
|
||||||
Long tmp = (memory == -1 ? -2 : UsedTotleMemory);
|
final Group group = groupJson.toJavaObject(Group.class);
|
||||||
if (tmp >= memory) {
|
Long memory = updateJson.getLong("memory");
|
||||||
msg.setCode("4005");
|
Long UsedTotleMemory = updateJson.getLong("UsedTotleMemory");
|
||||||
msg.setInfo(u == null ? "游客空间已用尽" : "您的可用空间不足");
|
Long TotleMemory = updateJson.getLong("TotleMemory");
|
||||||
return msg;
|
String updatePath = updateJson.getString("updatePath");
|
||||||
}
|
|
||||||
if (file.length() > TotleMemory) {
|
|
||||||
msg.setCode("4006");
|
|
||||||
msg.setInfo("图像超出系统限制大小");
|
|
||||||
return msg;
|
|
||||||
}
|
|
||||||
Msg fileMiME = TypeDict.FileMiME(file);
|
|
||||||
if (!fileMiME.getCode().equals("200")) {
|
|
||||||
msg.setCode("4000");
|
|
||||||
msg.setInfo(fileMiME.getInfo());
|
|
||||||
return msg;
|
|
||||||
}
|
|
||||||
if (md5key == null || md5key.equals("")) {
|
|
||||||
FileInputStream fis = null;
|
|
||||||
try {
|
|
||||||
fis = new FileInputStream(file);
|
|
||||||
md5key = DigestUtils.md5Hex(fis);
|
|
||||||
} catch (Exception e) {
|
|
||||||
logger.error("获取MD5错误",e);
|
|
||||||
}finally{
|
|
||||||
try {
|
|
||||||
if (null != fis)
|
|
||||||
fis.close();
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
String prefix = file.getName().substring(file.getName().lastIndexOf(".") + 1);
|
|
||||||
if (uploadConfig.getBlacklist() != null) {
|
if (uploadConfig.getBlacklist() != null) {
|
||||||
String[] iparr = uploadConfig.getBlacklist().split(";");
|
String[] iparr = uploadConfig.getBlacklist().split(";");
|
||||||
for (String s : iparr) {
|
for (String s : iparr) {
|
||||||
@@ -125,31 +106,96 @@ public class UploadServicel {
|
|||||||
file.delete();
|
file.delete();
|
||||||
msg.setCode("4003");
|
msg.setCode("4003");
|
||||||
msg.setInfo("你暂时不能上传");
|
msg.setInfo("你暂时不能上传");
|
||||||
|
try {
|
||||||
|
if(stream!=null){stream.close();}
|
||||||
|
file.delete();
|
||||||
|
} catch (Exception e) { }
|
||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
sourceKeyId = group.getKeyid();
|
||||||
|
Keys key = keysMapper.selectKeys(sourceKeyId);
|
||||||
|
Long tmp = (memory == -1 ? -2 : UsedTotleMemory);
|
||||||
|
if (tmp >= memory) {
|
||||||
|
msg.setCode("4005");
|
||||||
|
msg.setInfo(u == null ? "游客空间已用尽" : "您的可用空间不足");
|
||||||
|
try {
|
||||||
|
if(stream!=null){stream.close();}
|
||||||
|
file.delete();
|
||||||
|
} catch (Exception e) { }
|
||||||
|
return msg;
|
||||||
|
}
|
||||||
|
if (file.length() > TotleMemory) {
|
||||||
|
msg.setCode("4006");
|
||||||
|
msg.setInfo("图像超出系统限制大小");
|
||||||
|
try {
|
||||||
|
if(stream!=null){stream.close();}
|
||||||
|
file.delete();
|
||||||
|
} catch (Exception e) { }
|
||||||
|
return msg;
|
||||||
|
}
|
||||||
|
Msg fileMiME = TypeDict.FileMiME(stream);
|
||||||
|
if (!fileMiME.getCode().equals("200")) {
|
||||||
|
msg.setCode("4000");
|
||||||
|
msg.setInfo(fileMiME.getInfo());
|
||||||
|
try {
|
||||||
|
if(stream!=null){stream.close();}
|
||||||
|
file.delete();
|
||||||
|
} catch (Exception e) { }
|
||||||
|
return msg;
|
||||||
|
}
|
||||||
|
if (md5key == null || md5key.equals("")) {
|
||||||
|
md5key = DigestUtils.md5Hex(stream);
|
||||||
|
// FileInputStream fis = null;
|
||||||
|
// try {
|
||||||
|
// fis = new FileInputStream(file);
|
||||||
|
// md5key = DigestUtils.md5Hex(fis);
|
||||||
|
// } catch (Exception e) {
|
||||||
|
// logger.error("获取MD5错误",e);
|
||||||
|
// }finally{
|
||||||
|
// try {
|
||||||
|
// if (null != fis)
|
||||||
|
// fis.close();
|
||||||
|
// } catch (Exception e) {
|
||||||
|
// e.printStackTrace();
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
String prefix = file.getName().substring(file.getName().lastIndexOf(".") + 1);
|
||||||
|
try {
|
||||||
|
if(stream!=null){stream.close();}
|
||||||
|
} catch (Exception e) { }
|
||||||
|
// 判断路径格式 处理一下,去掉最前面的/
|
||||||
|
String RootPath = key.getRootPath().replace(" ", "");
|
||||||
|
if (!RootPath.equals("/")) {
|
||||||
|
updatePath = RootPath.substring(1) + "/" + updatePath;
|
||||||
|
}
|
||||||
// 先存数据库
|
// 先存数据库
|
||||||
Images imgObj = new Images();
|
Images imgObj = new Images();
|
||||||
String imgnameEd = null;
|
String imgnameEd = null;
|
||||||
Map<Map<String, String>, File> map = new HashMap<>();
|
Map<Map<String, String>, File> map = new HashMap<>();
|
||||||
|
String shortUuid_y = SetText.getShortUuid();
|
||||||
|
String shortUuid_s = SetText.getShortUuid();
|
||||||
if (file.exists()) {
|
if (file.exists()) {
|
||||||
Map<String, String> m1 = new HashMap<>();
|
Map<String, String> m1 = new HashMap<>();
|
||||||
String shortUuid_y = SetText.getShortUuid();
|
|
||||||
m1.put("prefix", prefix);
|
m1.put("prefix", prefix);
|
||||||
m1.put("name", shortUuid_y);
|
m1.put("name", shortUuid_y);
|
||||||
map.put(m1, file);
|
map.put(m1, file);
|
||||||
imgnameEd = updatePath + "/" + shortUuid_y + "." + prefix;
|
imgnameEd = updatePath + "/" + shortUuid_y + "." + prefix;
|
||||||
imgObj.setImgname(imgnameEd);
|
imgObj.setImgname(imgnameEd);
|
||||||
if (key.getStorageType().equals(5)) {
|
if (key.getStorageType().equals(5)) {
|
||||||
imgObj.setImgurl(key.getRequestAddress() + "/ota/" + imgnameEd);
|
imgObj.setImgurl(confdata.getString("domain") + "/ota/" + imgnameEd);
|
||||||
} else {
|
} else if(key.getStorageType().equals(9) && key.getSysTransmit()){
|
||||||
|
imgObj.setImgurl(confdata.getString("domain") + "/w/" + shortUuid_y);
|
||||||
|
}else {
|
||||||
imgObj.setImgurl(key.getRequestAddress() + "/" + imgnameEd);
|
imgObj.setImgurl(key.getRequestAddress() + "/" + imgnameEd);
|
||||||
}
|
}
|
||||||
imgObj.setSizes(Long.toString(file.length()));
|
imgObj.setSizes(Long.toString(file.length()));
|
||||||
}else{
|
}else{
|
||||||
msg.setInfo("未获取到指定图像:110503");
|
msg.setInfo("未获取到指定图像:110503");
|
||||||
msg.setCode("110503");
|
msg.setCode("110503");
|
||||||
|
try { file.delete(); } catch (Exception e) { }
|
||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
imgObj.setUpdatetime(df.format(new Date()));
|
imgObj.setUpdatetime(df.format(new Date()));
|
||||||
@@ -168,14 +214,18 @@ public class UploadServicel {
|
|||||||
imgObj.setMd5key(md5key);
|
imgObj.setMd5key(md5key);
|
||||||
imgObj.setImguid(imguid);
|
imgObj.setImguid(imguid);
|
||||||
imgObj.setFormat(fileMiME.getData().toString());
|
imgObj.setFormat(fileMiME.getData().toString());
|
||||||
|
imgObj.setShortlink(shortUuid_y);
|
||||||
|
imgObj.setBrieflink(shortUuid_s);
|
||||||
imgObj.setIdname(imgName);
|
imgObj.setIdname(imgName);
|
||||||
// Integer insertRet = imgMapper.insertImgData(imgObj);
|
// Integer insertRet = imgMapper.insertImgData(imgObj);
|
||||||
Msg insertRet = imgServiceImpl.insertImgDataForCheck(imgObj,u,confdata,file.getName());
|
Msg insertRet = imgServiceImpl.insertImgDataForCheck(imgObj,u,confdata,file.getName());
|
||||||
if (insertRet.getCode().equals("000")) {
|
if (insertRet.getCode().equals("000")) {
|
||||||
|
try { file.delete(); } catch (Exception e) { }
|
||||||
return insertRet;
|
return insertRet;
|
||||||
}
|
}
|
||||||
|
|
||||||
long stime = System.currentTimeMillis();
|
long stime = System.currentTimeMillis();
|
||||||
|
System.out.println("上传前地址:"+updatePath);
|
||||||
ReturnImage returnImage = getSource.storageSource(key.getStorageType(), map, updatePath, key.getId());
|
ReturnImage returnImage = getSource.storageSource(key.getStorageType(), map, updatePath, key.getId());
|
||||||
if (returnImage.getCode().equals("200")) {
|
if (returnImage.getCode().equals("200")) {
|
||||||
long etime = System.currentTimeMillis();
|
long etime = System.currentTimeMillis();
|
||||||
@@ -184,24 +234,21 @@ public class UploadServicel {
|
|||||||
jsonObject.put("name", imgObj.getImgname());
|
jsonObject.put("name", imgObj.getImgname());
|
||||||
jsonObject.put("imguid", imgObj.getImguid());
|
jsonObject.put("imguid", imgObj.getImguid());
|
||||||
imgViolationJudgeService.LegalImageCheck(imgObj,key);
|
imgViolationJudgeService.LegalImageCheck(imgObj,key);
|
||||||
// new Thread(
|
|
||||||
// () -> {
|
|
||||||
// LegalImageCheck(imgObj);
|
|
||||||
// })
|
|
||||||
// .start();
|
|
||||||
} else {
|
} else {
|
||||||
imgServiceImpl.deleimgForImgUid(imgObj.getImguid());
|
imgServiceImpl.deleimgForImgUid(imgObj.getImguid());
|
||||||
msg.setCode("5001");
|
msg.setCode("5001");
|
||||||
msg.setInfo("上传服务内部错误");
|
msg.setInfo("上传服务内部错误");
|
||||||
|
try { file.delete(); } catch (Exception e) { }
|
||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
file.delete();
|
|
||||||
msg.setData(jsonObject);
|
msg.setData(jsonObject);
|
||||||
|
file.delete();
|
||||||
return msg;
|
return msg;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
msg.setInfo("上传时发生了一些错误");
|
msg.setInfo("上传时发生了一些错误");
|
||||||
msg.setCode("110500");
|
msg.setCode("110500");
|
||||||
|
file.delete();
|
||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -215,7 +262,6 @@ public class UploadServicel {
|
|||||||
String md5 = jsonObj.getString("md5");
|
String md5 = jsonObj.getString("md5");
|
||||||
String classifications = jsonObj.getString("classifications");
|
String classifications = jsonObj.getString("classifications");
|
||||||
Integer day = jsonObj.getInteger("day");
|
Integer day = jsonObj.getInteger("day");
|
||||||
String source = jsonObj.getString("source");
|
|
||||||
String imgIdentifier = jsonObj.getString("imgIdentifier");
|
String imgIdentifier = jsonObj.getString("imgIdentifier");
|
||||||
JSONArray jsonArray = new JSONArray();
|
JSONArray jsonArray = new JSONArray();
|
||||||
classifications = classifications==null?"":classifications;
|
classifications = classifications==null?"":classifications;
|
||||||
@@ -302,18 +348,20 @@ public class UploadServicel {
|
|||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Group group; // 上传用户或游客的所属分组
|
// private static Group group; // 上传用户或游客的所属分组
|
||||||
private static Long memory; // 上传用户或者游客的分配容量 memory
|
// private static Long memory; // 上传用户或者游客的分配容量 memory
|
||||||
private static Long TotleMemory; // 用户或者游客下可使用的总容量 //maxsize
|
// private static Long TotleMemory; // 用户或者游客下可使用的总容量 //maxsize
|
||||||
private static Long UsedTotleMemory; // 用户或者游客已经用掉的总容量 //usermemory
|
// private static Long UsedTotleMemory; // 用户或者游客已经用掉的总容量 //usermemory
|
||||||
private static String updatePath = "tourist";
|
// private static String updatePath = "tourist";
|
||||||
|
|
||||||
// 判断用户 或 游客 当前上传图片的一系列校验
|
// 判断用户 或 游客 当前上传图片的一系列校验
|
||||||
private Msg updateImgCheck(User user, UploadConfig uploadConfig) {
|
private Msg updateImgCheck(User user, UploadConfig uploadConfig) {
|
||||||
Msg msg = new Msg();
|
Msg msg = new Msg();
|
||||||
java.text.DateFormat dateFormat = null;
|
JSONObject jsonObject = new JSONObject();
|
||||||
|
String updatePath = "tourist";
|
||||||
try {
|
try {
|
||||||
dateFormat = new SimpleDateFormat("yyyy/MM/dd");
|
Group group = GetCurrentSource.GetSource(user == null ? null : user.getId());
|
||||||
|
jsonObject.put("group",group);
|
||||||
if (user == null) {
|
if (user == null) {
|
||||||
if (uploadConfig.getIsupdate() != 1) {
|
if (uploadConfig.getIsupdate() != 1) {
|
||||||
msg.setCode("1000");
|
msg.setCode("1000");
|
||||||
@@ -321,13 +369,15 @@ public class UploadServicel {
|
|||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
updatePath = "tourist";
|
updatePath = "tourist";
|
||||||
group = GetCurrentSource.GetSource(null);
|
Long memory = Long.valueOf(uploadConfig.getVisitormemory()); // 单位 B 游客设置总量
|
||||||
memory = Long.valueOf(uploadConfig.getVisitormemory()); // 单位 B 游客设置总量
|
Long TotleMemory = Long.valueOf(uploadConfig.getFilesizetourists()); // 单位 B 游客单文件大小
|
||||||
TotleMemory = Long.valueOf(uploadConfig.getFilesizetourists()); // 单位 B 游客单文件大小
|
Long UsedTotleMemory =
|
||||||
UsedTotleMemory =
|
|
||||||
imgServiceImpl.getusermemory(0) == null
|
imgServiceImpl.getusermemory(0) == null
|
||||||
? 0L
|
? 0L
|
||||||
: imgServiceImpl.getusermemory(0); // 单位 B
|
: imgServiceImpl.getusermemory(0); // 单位 B
|
||||||
|
jsonObject.put("memory",memory);
|
||||||
|
jsonObject.put("TotleMemory",TotleMemory);
|
||||||
|
jsonObject.put("UsedTotleMemory",UsedTotleMemory);
|
||||||
} else {
|
} else {
|
||||||
if (uploadConfig.getUserclose() != 1) {
|
if (uploadConfig.getUserclose() != 1) {
|
||||||
msg.setCode("1001");
|
msg.setCode("1001");
|
||||||
@@ -335,20 +385,26 @@ public class UploadServicel {
|
|||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
updatePath = user.getUsername();
|
updatePath = user.getUsername();
|
||||||
group = GetCurrentSource.GetSource(user.getId());
|
Long memory = Long.valueOf(user.getMemory()); // 单位 B *1024*1024
|
||||||
memory = Long.valueOf(user.getMemory()); // 单位 B *1024*1024
|
Long TotleMemory = Long.valueOf(uploadConfig.getFilesizeuser()); // 单位 B
|
||||||
TotleMemory = Long.valueOf(uploadConfig.getFilesizeuser()); // 单位 B
|
Long UsedTotleMemory =
|
||||||
UsedTotleMemory =
|
|
||||||
imgServiceImpl.getusermemory(user.getId()) == null
|
imgServiceImpl.getusermemory(user.getId()) == null
|
||||||
? 0L
|
? 0L
|
||||||
: imgServiceImpl.getusermemory(user.getId()); // 单位 B
|
: imgServiceImpl.getusermemory(user.getId()); // 单位 B
|
||||||
|
jsonObject.put("memory",memory);
|
||||||
|
jsonObject.put("TotleMemory",TotleMemory);
|
||||||
|
jsonObject.put("UsedTotleMemory",UsedTotleMemory);
|
||||||
}
|
}
|
||||||
if (uploadConfig.getUrltype() == 2) {
|
if (uploadConfig.getUrltype() == 2) {
|
||||||
updatePath = dateFormat.format(new Date());
|
LocalDate currentDate = LocalDate.now();
|
||||||
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
|
||||||
|
updatePath = currentDate.format(formatter);
|
||||||
}
|
}
|
||||||
|
jsonObject.put("updatePath",updatePath);
|
||||||
|
msg.setData(jsonObject);
|
||||||
msg.setCode("300");
|
msg.setCode("300");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
logger.error("updateImgCheck异常:",e);
|
||||||
msg.setCode("500");
|
msg.setCode("500");
|
||||||
}
|
}
|
||||||
return msg;
|
return msg;
|
||||||
@@ -359,8 +415,6 @@ public class UploadServicel {
|
|||||||
public static String plusDay(int setday) {
|
public static String plusDay(int setday) {
|
||||||
Date d = new Date();
|
Date d = new Date();
|
||||||
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
String currdate = format.format(d);
|
|
||||||
System.out.println("现在的日期是:" + currdate);
|
|
||||||
Calendar ca = Calendar.getInstance();
|
Calendar ca = Calendar.getInstance();
|
||||||
ca.setTime(d);
|
ca.setTime(d);
|
||||||
ca.add(Calendar.DATE, setday); // num为增加的天数,可以改变的
|
ca.add(Calendar.DATE, setday); // num为增加的天数,可以改变的
|
||||||
|
|||||||
@@ -0,0 +1,210 @@
|
|||||||
|
package cn.hellohao.service.impl;
|
||||||
|
|
||||||
|
import cn.hellohao.config.GlobalConstant;
|
||||||
|
import cn.hellohao.pojo.Images;
|
||||||
|
import cn.hellohao.pojo.Keys;
|
||||||
|
import cn.hellohao.pojo.Msg;
|
||||||
|
import cn.hellohao.pojo.ReturnImage;
|
||||||
|
import cn.hellohao.service.ImgService;
|
||||||
|
import cn.hellohao.service.KeysService;
|
||||||
|
import cn.hellohao.utils.TypeDict;
|
||||||
|
import com.github.sardine.impl.methods.HttpMkCol;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.apache.http.HttpResponse;
|
||||||
|
import org.apache.http.auth.AuthScope;
|
||||||
|
import org.apache.http.auth.UsernamePasswordCredentials;
|
||||||
|
import org.apache.http.client.CredentialsProvider;
|
||||||
|
import org.apache.http.client.methods.*;
|
||||||
|
import org.apache.http.entity.ContentType;
|
||||||
|
import org.apache.http.entity.FileEntity;
|
||||||
|
import org.apache.http.entity.StringEntity;
|
||||||
|
import org.apache.http.impl.client.BasicCredentialsProvider;
|
||||||
|
import org.apache.http.impl.client.CloseableHttpClient;
|
||||||
|
import org.apache.http.impl.client.HttpClients;
|
||||||
|
import org.apache.http.util.EntityUtils;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.core.io.InputStreamResource;
|
||||||
|
import org.springframework.http.HttpHeaders;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileInputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class WebDAVImageupload {
|
||||||
|
|
||||||
|
static CloseableHttpClient httpClient;
|
||||||
|
static Keys key;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ImgService imgService;
|
||||||
|
@Autowired
|
||||||
|
private KeysService keysService;
|
||||||
|
private static Logger logger = LoggerFactory.getLogger(WebDAVImageupload.class);
|
||||||
|
public ReturnImage ImageuploadWebDAV(Map<Map<String, String>, File> fileMap, String username,Integer keyID) {
|
||||||
|
ReturnImage returnImage = new ReturnImage();
|
||||||
|
try {
|
||||||
|
if(null==httpClient || null==key){
|
||||||
|
System.out.println("WebDAV = 存储源对象为空");
|
||||||
|
returnImage.setCode("500");
|
||||||
|
return returnImage;
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error("ImageuploadWebDAV:61异常",e);
|
||||||
|
System.out.println("WebDAV = 存储源对象为空");
|
||||||
|
returnImage.setCode("500");
|
||||||
|
return returnImage;
|
||||||
|
}
|
||||||
|
File file = null;
|
||||||
|
try {
|
||||||
|
for (Map.Entry<Map<String, String>, File> entry : fileMap.entrySet()) {
|
||||||
|
String prefix = entry.getKey().get("prefix");
|
||||||
|
String ShortUIDName = entry.getKey().get("name");
|
||||||
|
file = entry.getValue();
|
||||||
|
createDirectories(httpClient, key.getEndpoint(), "/" + username);
|
||||||
|
HttpPut httpPut = new HttpPut(key.getEndpoint() + "/" + username + "/" + ShortUIDName + "." + prefix);
|
||||||
|
FileEntity fileEntity = new FileEntity(file, ContentType.DEFAULT_BINARY);
|
||||||
|
httpPut.setEntity(fileEntity);
|
||||||
|
HttpResponse response = httpClient.execute(httpPut);
|
||||||
|
final int statusCode = response.getStatusLine().getStatusCode();
|
||||||
|
logger.info("WebDav上传响应代码:"+statusCode);
|
||||||
|
EntityUtils.consume(response.getEntity());
|
||||||
|
if(statusCode >= 200 && statusCode < 300){
|
||||||
|
returnImage.setCode("200");
|
||||||
|
}else{
|
||||||
|
returnImage.setCode(Integer.toString(statusCode));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error("ImageuploadWebDAV:87异常",e);
|
||||||
|
returnImage.setCode("500");
|
||||||
|
}
|
||||||
|
return returnImage;
|
||||||
|
}
|
||||||
|
|
||||||
|
//webdav初始化
|
||||||
|
public static Integer Initialize(Keys k) {
|
||||||
|
int ret = -1;
|
||||||
|
try {
|
||||||
|
if(k.getSysTransmit()==false){
|
||||||
|
if (StringUtils.isBlank(k.getAccessKey())
|
||||||
|
|| StringUtils.isBlank(k.getAccessSecret())
|
||||||
|
|| StringUtils.isBlank(k.getEndpoint())
|
||||||
|
|| StringUtils.isBlank(k.getRequestAddress())) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
if (StringUtils.isBlank(k.getAccessKey())
|
||||||
|
|| StringUtils.isBlank(k.getAccessSecret())
|
||||||
|
|| StringUtils.isBlank(k.getEndpoint())) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
String endpoint = k.getEndpoint();
|
||||||
|
CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
|
||||||
|
credentialsProvider.setCredentials(
|
||||||
|
new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT),
|
||||||
|
new UsernamePasswordCredentials(k.getAccessKey(), k.getAccessSecret()));
|
||||||
|
CloseableHttpClient httpClientObj = HttpClients.custom()
|
||||||
|
.setDefaultCredentialsProvider(credentialsProvider)
|
||||||
|
.build();
|
||||||
|
HttpUriRequest request = RequestBuilder.create("PROPFIND")
|
||||||
|
.setUri(endpoint +"/"+ k.getRootPath())
|
||||||
|
.addHeader("Depth", "1")
|
||||||
|
.setEntity(new StringEntity(
|
||||||
|
"<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n" +
|
||||||
|
"<D:propfind xmlns:D=\"DAV:\">\n" +
|
||||||
|
" <D:allprop/>\n" +
|
||||||
|
"</D:propfind>",
|
||||||
|
ContentType.create("text/xml", "UTF-8")))
|
||||||
|
.build();
|
||||||
|
HttpResponse response = httpClientObj.execute(request);
|
||||||
|
System.out.println("=====>"+response.getStatusLine().getStatusCode());
|
||||||
|
if(response.getStatusLine().getStatusCode()==207 || response.getStatusLine().getStatusCode()==404){
|
||||||
|
ret = 1;
|
||||||
|
httpClient = httpClientObj;
|
||||||
|
key = k;
|
||||||
|
}else {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
EntityUtils.consume(response.getEntity());
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error("WebDAV初始化失败", e);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean delWebDAV(Integer keyID, Images images) {
|
||||||
|
boolean b = true;
|
||||||
|
try {
|
||||||
|
Keys keys = keysService.selectKeys(images.getSource());
|
||||||
|
String rootPath = keys.getRootPath().equals("/")?"":keys.getRootPath();
|
||||||
|
String fileUrl = keys.getEndpoint()+"/"+images.getImgname();
|
||||||
|
System.err.println("删除缩yuan图:"+fileUrl);
|
||||||
|
HttpDelete httpDelete = new HttpDelete(fileUrl);
|
||||||
|
HttpResponse response = httpClient.execute(httpDelete);
|
||||||
|
int statusCode = response.getStatusLine().getStatusCode();
|
||||||
|
if (statusCode == 204) {
|
||||||
|
logger.info("File deleted: " + fileUrl);
|
||||||
|
// checkAndDeleteEmptyParentDirectories(httpClient,fileUrl);
|
||||||
|
} else {
|
||||||
|
logger.error("Failed to delete file: " + fileUrl);
|
||||||
|
}
|
||||||
|
EntityUtils.consume(response.getEntity());
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error("WebDav删除异常:",e);
|
||||||
|
b = false;
|
||||||
|
}
|
||||||
|
return b;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public ResponseEntity<InputStreamResource> getWebDAV(String shortUuid) {
|
||||||
|
boolean b = true;
|
||||||
|
try {
|
||||||
|
Images images = null;
|
||||||
|
images = imgService.selectImgByShortlink(shortUuid);
|
||||||
|
Keys keys = keysService.selectKeys(images.getSource());
|
||||||
|
String rootPath = keys.getRootPath().equals("/")?"":keys.getRootPath();
|
||||||
|
String fileUrl = keys.getEndpoint()+"/"+images.getImgname();
|
||||||
|
HttpGet httpGet = new HttpGet(fileUrl);
|
||||||
|
HttpResponse response = httpClient.execute(httpGet);
|
||||||
|
HttpHeaders headers = new HttpHeaders();
|
||||||
|
headers.add("Content-Type", "image/jpeg");
|
||||||
|
return ResponseEntity.ok()
|
||||||
|
.headers(headers)
|
||||||
|
.body(new InputStreamResource(response.getEntity().getContent()));
|
||||||
|
} catch (IOException e) {
|
||||||
|
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void createDirectories(CloseableHttpClient httpClient, String baseUrl, String directoryPath) throws Exception {
|
||||||
|
String[] directories = directoryPath.split("/");
|
||||||
|
String currentPath = baseUrl;
|
||||||
|
for (String directory : directories) {
|
||||||
|
currentPath += directory + "/";
|
||||||
|
HttpMkCol httpMkCol = new HttpMkCol(currentPath);
|
||||||
|
HttpResponse response = httpClient.execute(httpMkCol);
|
||||||
|
int statusCode = response.getStatusLine().getStatusCode();
|
||||||
|
if (statusCode == 201) {
|
||||||
|
System.out.println("Directory created: " + currentPath);
|
||||||
|
} else if (statusCode == 405) {
|
||||||
|
System.out.println("Directory already exists: " + currentPath);
|
||||||
|
} else {
|
||||||
|
System.err.println("Failed to create directory: " + currentPath);
|
||||||
|
}
|
||||||
|
EntityUtils.consume(response.getEntity());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -26,6 +26,7 @@ public class deleImages {
|
|||||||
@Autowired private USSImageupload ussImageupload;
|
@Autowired private USSImageupload ussImageupload;
|
||||||
@Autowired private S3Imageupload s3Imageupload;
|
@Autowired private S3Imageupload s3Imageupload;
|
||||||
@Autowired private FtpServiceImpl ftpService;
|
@Autowired private FtpServiceImpl ftpService;
|
||||||
|
@Autowired private WebDAVImageupload webDAVImageupload;
|
||||||
@Autowired private ImgAndAlbumService imgAndAlbumService;
|
@Autowired private ImgAndAlbumService imgAndAlbumService;
|
||||||
@Autowired private ImgTempService imgTempService;
|
@Autowired private ImgTempService imgTempService;
|
||||||
@Autowired private ImgService imgService;
|
@Autowired private ImgService imgService;
|
||||||
@@ -44,7 +45,7 @@ public class deleImages {
|
|||||||
boolean isDele = false;
|
boolean isDele = false;
|
||||||
try {
|
try {
|
||||||
Images image = imgService.selectByPrimaryKey(imgIds[i]);
|
Images image = imgService.selectByPrimaryKey(imgIds[i]);
|
||||||
if (!forceDel) {
|
if (forceDel) {
|
||||||
try {
|
try {
|
||||||
imgAndAlbumService.deleteImgAndAlbum(image.getImgurl());
|
imgAndAlbumService.deleteImgAndAlbum(image.getImgurl());
|
||||||
imgTempService.delImgAndExp(image.getImguid());
|
imgTempService.delImgAndExp(image.getImguid());
|
||||||
@@ -75,6 +76,8 @@ public class deleImages {
|
|||||||
isDele = ftpService.delFTP(key.getId(), image);
|
isDele = ftpService.delFTP(key.getId(), image);
|
||||||
} else if (key.getStorageType() == 8) {
|
} else if (key.getStorageType() == 8) {
|
||||||
isDele = s3Imageupload.deleS3(key.getId(), image);
|
isDele = s3Imageupload.deleS3(key.getId(), image);
|
||||||
|
}else if (key.getStorageType() == 9) {
|
||||||
|
isDele = webDAVImageupload.delWebDAV(key.getId(), image);
|
||||||
} else {
|
} else {
|
||||||
System.err.println("未获取到对象存储参数,删除失败。");
|
System.err.println("未获取到对象存储参数,删除失败。");
|
||||||
}
|
}
|
||||||
@@ -149,6 +152,8 @@ public class deleImages {
|
|||||||
ftpService.delFTP(key.getId(), image);
|
ftpService.delFTP(key.getId(), image);
|
||||||
} else if (key.getStorageType() == 8) {
|
} else if (key.getStorageType() == 8) {
|
||||||
s3Imageupload.deleS3(key.getId(), image);
|
s3Imageupload.deleS3(key.getId(), image);
|
||||||
|
}else if (key.getStorageType() == 9) {
|
||||||
|
webDAVImageupload.delWebDAV(key.getId(), image);
|
||||||
} else {
|
} else {
|
||||||
System.err.println("未获取到对象存储参数,删除失败。");
|
System.err.println("未获取到对象存储参数,删除失败。");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,29 +1,51 @@
|
|||||||
package cn.hellohao.utils;
|
//package cn.hellohao.utils;
|
||||||
|
//
|
||||||
import sun.misc.BASE64Decoder;
|
//import java.io.IOException;
|
||||||
import sun.misc.BASE64Encoder;
|
//import java.util.Base64;
|
||||||
|
//
|
||||||
import java.io.IOException;
|
///**
|
||||||
import java.util.Base64;
|
// * Created by Hellohao on 2019-08-27.
|
||||||
|
// */
|
||||||
/**
|
//public class Base64Encryption {
|
||||||
* Created by Hellohao on 2019-08-27.
|
//// public static void toBaseCode(String str) {
|
||||||
*/
|
//// String data = encryptBASE64(str.getBytes());
|
||||||
public class Base64Encryption {
|
//// }
|
||||||
public static void toBaseCode(String str) {
|
//// public static String decryptBASE64(String key) {
|
||||||
String data = encryptBASE64(str.getBytes());
|
//// byte[] b =null;
|
||||||
}
|
//// try {
|
||||||
public static String decryptBASE64(String key) {
|
//// b = (new BASE64Decoder()).decodeBuffer(key);
|
||||||
byte[] b =null;
|
//// } catch (IOException e) {
|
||||||
try {
|
//// e.printStackTrace();
|
||||||
b = (new BASE64Decoder()).decodeBuffer(key);
|
//// }
|
||||||
} catch (IOException e) {
|
//// return new String(b);
|
||||||
e.printStackTrace();
|
//// }
|
||||||
}
|
//// public static String encryptBASE64(byte[] key) {
|
||||||
return new String(b);
|
//// String string = "SGVsbG9oYW8K";
|
||||||
}
|
//// return (new BASE64Encoder()).encodeBuffer(key).replaceAll("\r|\n", "");
|
||||||
public static String encryptBASE64(byte[] key) {
|
//// }
|
||||||
String string = "SGVsbG9oYW8K";
|
//
|
||||||
return (new BASE64Encoder()).encodeBuffer(key).replaceAll("\r|\n", "");
|
//
|
||||||
}
|
// public static void toBaseCode(String str) {
|
||||||
}
|
// String data = encryptBASE64(str.getBytes());
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// public static String decryptBASE64(String key) {
|
||||||
|
// byte[] b = null;
|
||||||
|
// try {
|
||||||
|
// b = Base64.getDecoder().decode(key);
|
||||||
|
// } catch (IllegalArgumentException e) {
|
||||||
|
// e.printStackTrace();
|
||||||
|
// }
|
||||||
|
// return new String(b);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// public static String encryptBASE64(byte[] key) {
|
||||||
|
// String string = "SGVsbG9oYW8K";
|
||||||
|
// return Base64.getEncoder().encodeToString(key);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//}
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
package cn.hellohao.utils;
|
package cn.hellohao.utils;
|
||||||
|
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
import sun.misc.BASE64Decoder;
|
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
|
import java.util.Base64;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* base64转为multipartFile工具类
|
* base64转为multipartFile工具类
|
||||||
@@ -74,21 +74,30 @@ public class Base64ToMultipartFile implements MultipartFile {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static MultipartFile base64Convert(String base64) {
|
public static MultipartFile base64Convert(String base64) {
|
||||||
String[] baseStrs = base64.split(",");
|
// String[] baseStrs = base64.split(",");
|
||||||
|
// BASE64Decoder decoder = new BASE64Decoder();
|
||||||
|
// byte[] b = new byte[0];
|
||||||
|
// try {
|
||||||
|
// b = decoder.decodeBuffer(baseStrs[1]);
|
||||||
|
// } catch (IOException e) {
|
||||||
|
// e.printStackTrace();
|
||||||
|
// }
|
||||||
|
// for (int i = 0; i < b.length; ++i) {
|
||||||
|
// if (b[i] < 0) {
|
||||||
|
// b[i] += 256;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// return new Base64ToMultipartFile (b, baseStrs[0]);
|
||||||
|
|
||||||
BASE64Decoder decoder = new BASE64Decoder();
|
String[] baseStrs = base64.split(",");
|
||||||
byte[] b = new byte[0];
|
byte[] b = Base64.getDecoder().decode(baseStrs[1]);
|
||||||
try {
|
|
||||||
b = decoder.decodeBuffer(baseStrs[1]);
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
for (int i = 0; i < b.length; ++i) {
|
for (int i = 0; i < b.length; ++i) {
|
||||||
if (b[i] < 0) {
|
if (b[i] < 0) {
|
||||||
b[i] += 256;
|
b[i] += 256;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return new Base64ToMultipartFile (b, baseStrs[0]);
|
return new Base64ToMultipartFile(b, baseStrs[0]);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -111,6 +111,30 @@ public class FirstRun implements InitializingBean {
|
|||||||
RunSqlScript.RunInsert(instartConfdata);
|
RunSqlScript.RunInsert(instartConfdata);
|
||||||
Print.Normal("Add table.confdata");
|
Print.Normal("Add table.confdata");
|
||||||
}
|
}
|
||||||
|
Integer ret7 =
|
||||||
|
RunSqlScript.RunSelectCount(judgeTable + " 'keys' and column_name = 'SysTransmit'");
|
||||||
|
if (ret7 == 0) {
|
||||||
|
RunSqlScript.RunInsert(sql7);
|
||||||
|
Print.Normal("Add keys.SysTransmit");
|
||||||
|
}
|
||||||
|
Integer ret8 =
|
||||||
|
RunSqlScript.RunSelectCount(judgeTable + " 'imgdata' and column_name = 'brieflink'");
|
||||||
|
if (ret8 == 0) {
|
||||||
|
RunSqlScript.RunInsert(sql8);
|
||||||
|
Print.Normal("Add imgdata.brieflink");
|
||||||
|
}
|
||||||
|
Integer ret9 =
|
||||||
|
RunSqlScript.RunSelectCount(judgeTable + " 'imgdata' and column_name = 'shortlink'");
|
||||||
|
if (ret9 == 0) {
|
||||||
|
RunSqlScript.RunInsert(sql9);
|
||||||
|
Print.Normal("Add imgdata.shortlink");
|
||||||
|
}
|
||||||
|
Integer ret10 =
|
||||||
|
RunSqlScript.RunSelectCount(" select count(*) from tbed.keys where storageType='9'");
|
||||||
|
if (ret10 == 0) {
|
||||||
|
RunSqlScript.RunInsert(sql10);
|
||||||
|
Print.Normal("Add Webdav Config");
|
||||||
|
}
|
||||||
RunSqlScript.RunInsert(index_imgdata);
|
RunSqlScript.RunInsert(index_imgdata);
|
||||||
RunSqlScript.RunInsert("ALTER TABLE tbed.`user` MODIFY id int auto_increment;");
|
RunSqlScript.RunInsert("ALTER TABLE tbed.`user` MODIFY id int auto_increment;");
|
||||||
Print.Normal("Stage success");
|
Print.Normal("Stage success");
|
||||||
@@ -121,7 +145,6 @@ public class FirstRun implements InitializingBean {
|
|||||||
//检查表是否存在,后边加'imgdata' and column_name = 'explains' 检查字段是否存在
|
//检查表是否存在,后边加'imgdata' and column_name = 'explains' 检查字段是否存在
|
||||||
private String isTableName = "SELECT count(table_name) FROM information_schema.TABLES WHERE TABLE_SCHEMA='tbed' and table_name =";
|
private String isTableName = "SELECT count(table_name) FROM information_schema.TABLES WHERE TABLE_SCHEMA='tbed' and table_name =";
|
||||||
private String judgeTable = "select count(*) from information_schema.columns where TABLE_SCHEMA='tbed' and table_name = ";
|
private String judgeTable = "select count(*) from information_schema.columns where TABLE_SCHEMA='tbed' and table_name = ";
|
||||||
//创建blacklist 2019-11-29
|
|
||||||
private String sql0 =
|
private String sql0 =
|
||||||
"alter table `keys` add (Region varchar(255) DEFAULT null,RootPath varchar(255) DEFAULT '/');";
|
"alter table `keys` add (Region varchar(255) DEFAULT null,RootPath varchar(255) DEFAULT '/');";
|
||||||
private String sql1 = "select count(*) from information_schema.columns where table_name = 'uploadconfig' and column_name = 'blacklist'";
|
private String sql1 = "select count(*) from information_schema.columns where table_name = 'uploadconfig' and column_name = 'blacklist'";
|
||||||
@@ -130,12 +153,12 @@ public class FirstRun implements InitializingBean {
|
|||||||
private String sql3 ="CREATE TABLE `imgandalbum` (`imgname` varchar(5000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`albumkey` varchar(5000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic";
|
private String sql3 ="CREATE TABLE `imgandalbum` (`imgname` varchar(5000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`albumkey` varchar(5000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic";
|
||||||
private String sql4 ="CREATE TABLE `album` (`albumkey` varchar(5000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`albumtitle` varchar(5000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`createdate` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `password` varchar(5000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic";
|
private String sql4 ="CREATE TABLE `album` (`albumkey` varchar(5000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`albumtitle` varchar(5000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`createdate` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `password` varchar(5000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic";
|
||||||
private String sql6 = "alter table imgdata add explains varchar(5000)";
|
private String sql6 = "alter table imgdata add explains varchar(5000)";
|
||||||
//添加album表字段userid
|
private String sql7 =
|
||||||
private String sql7 = "alter table album add userid int(10)";
|
"alter table `keys` add SysTransmit varchar(50) DEFAULT NULL ;";
|
||||||
//添加imgdata表字段md5key
|
private String sql8 = "alter table `imgdata` add brieflink varchar(100) DEFAULT null ;";
|
||||||
private String sql8 = "alter table imgdata add md5key varchar(5000)";
|
private String sql9 = "alter table `imgdata` add shortlink varchar(100) DEFAULT null ;";
|
||||||
// 图片标识名字段
|
// 图片标识名字段
|
||||||
private String sql11 = "alter table `imgdata` add idname varchar(255) DEFAULT '未命名' ;";
|
private String sql10 = "INSERT INTO `tbed`.`keys`(`id`, `AccessKey`, `AccessSecret`, `Endpoint`, `Bucketname`, `RequestAddress`, `storageType`, `keyname`, `Region`, `RootPath`, `SysTransmit`) VALUES (null, '账号', '密码', '连接', '', '存储源请求域名', 9, 'WebDAV', NULL, '/', NULL);";
|
||||||
|
|
||||||
private String sql12 = "alter table tbed.user add `token` varchar(255)";
|
private String sql12 = "alter table tbed.user add `token` varchar(255)";
|
||||||
//创建客户端程序相关表
|
//创建客户端程序相关表
|
||||||
@@ -188,9 +211,9 @@ public class FirstRun implements InitializingBean {
|
|||||||
try {
|
try {
|
||||||
File f = new File(filePath);
|
File f = new File(filePath);
|
||||||
if (f.exists()) {
|
if (f.exists()) {
|
||||||
System.out.print("文件存在");
|
logger.info("文件存在");
|
||||||
} else {
|
} else {
|
||||||
System.out.print("文件不存在");
|
logger.info("文件不存在,准备创建");
|
||||||
// f.createNewFile();// 不存在则创建
|
// f.createNewFile();// 不存在则创建
|
||||||
FileUtil.createTempFile(f);
|
FileUtil.createTempFile(f);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,8 +39,6 @@ public class GetCurrentSource {
|
|||||||
userService = userServiceImpl;
|
userService = userServiceImpl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static Group GetSource(Integer userid) {
|
public static Group GetSource(Integer userid) {
|
||||||
//UserType 0-未分配 1-游客 2-用户 3-管理员
|
//UserType 0-未分配 1-游客 2-用户 3-管理员
|
||||||
User user =null;
|
User user =null;
|
||||||
|
|||||||
@@ -31,7 +31,8 @@ public class GetSource {
|
|||||||
FtpServiceImpl ftpService;
|
FtpServiceImpl ftpService;
|
||||||
@Autowired
|
@Autowired
|
||||||
S3Imageupload s3Imageupload;
|
S3Imageupload s3Imageupload;
|
||||||
|
@Autowired
|
||||||
|
WebDAVImageupload webDAVImageupload;
|
||||||
public ReturnImage storageSource(Integer type, Map<Map<String, String>, File> fileMap, String userpath,Integer keyID){
|
public ReturnImage storageSource(Integer type, Map<Map<String, String>, File> fileMap, String userpath,Integer keyID){
|
||||||
ReturnImage returnImage = null;
|
ReturnImage returnImage = null;
|
||||||
try {
|
try {
|
||||||
@@ -51,6 +52,8 @@ public class GetSource {
|
|||||||
returnImage = ftpService.FtpUploadFile(fileMap, userpath,keyID);
|
returnImage = ftpService.FtpUploadFile(fileMap, userpath,keyID);
|
||||||
}else if(type==8){
|
}else if(type==8){
|
||||||
returnImage = s3Imageupload.ImageuploadS3(fileMap, userpath,keyID);
|
returnImage = s3Imageupload.ImageuploadS3(fileMap, userpath,keyID);
|
||||||
|
}else if(type==9){
|
||||||
|
returnImage = webDAVImageupload.ImageuploadWebDAV(fileMap, userpath,keyID);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
new StorageSourceInitException("GetSource类捕捉异常:未找到存储源");
|
new StorageSourceInitException("GetSource类捕捉异常:未找到存储源");
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ public class ImgUrlUtil {
|
|||||||
httpUrlConnection.setConnectTimeout(300000);
|
httpUrlConnection.setConnectTimeout(300000);
|
||||||
httpUrlConnection.setReadTimeout(300000);
|
httpUrlConnection.setReadTimeout(300000);
|
||||||
httpUrlConnection.connect();
|
httpUrlConnection.connect();
|
||||||
String code = new Integer(httpUrlConnection.getResponseCode()).toString();
|
String code = Integer.toString(httpUrlConnection.getResponseCode());
|
||||||
String message = httpUrlConnection.getResponseMessage();
|
String message = httpUrlConnection.getResponseMessage();
|
||||||
System.out.println("getResponseCode code ="+ code);
|
System.out.println("getResponseCode code ="+ code);
|
||||||
System.out.println("getResponseMessage message ="+ message);
|
System.out.println("getResponseMessage message ="+ message);
|
||||||
@@ -75,7 +75,7 @@ public class ImgUrlUtil {
|
|||||||
throw new Exception("ResponseCode is not begin with 2,code="+code);
|
throw new Exception("ResponseCode is not begin with 2,code="+code);
|
||||||
}
|
}
|
||||||
map.put("Check","true");
|
map.put("Check","true");
|
||||||
System.out.println("连接正常");
|
// System.out.println("连接正常");
|
||||||
}catch(Exception ex){
|
}catch(Exception ex){
|
||||||
System.out.println(ex.getMessage());
|
System.out.println(ex.getMessage());
|
||||||
}
|
}
|
||||||
@@ -85,7 +85,7 @@ public class ImgUrlUtil {
|
|||||||
|
|
||||||
|
|
||||||
public static Map<String ,Object> downLoadFromUrl(String urlStr,String referer,String fileName,String savePath){
|
public static Map<String ,Object> downLoadFromUrl(String urlStr,String referer,String fileName,String savePath){
|
||||||
|
FileInputStream fileInputStream = null;
|
||||||
Map<String ,Object> resmap = new HashMap<>();
|
Map<String ,Object> resmap = new HashMap<>();
|
||||||
Map<String ,String> map = checkURLStatusCode(urlStr);
|
Map<String ,String> map = checkURLStatusCode(urlStr);
|
||||||
if(map.size()==0 || map.get("Check").equals("false")){
|
if(map.size()==0 || map.get("Check").equals("false")){
|
||||||
@@ -120,7 +120,8 @@ public class ImgUrlUtil {
|
|||||||
}
|
}
|
||||||
//下载并且保存成功后 判断格式 如果不是图像格式 就删除
|
//下载并且保存成功后 判断格式 如果不是图像格式 就删除
|
||||||
if(new File(saveDir+File.separator+fileName).exists()){
|
if(new File(saveDir+File.separator+fileName).exists()){
|
||||||
Msg msg = TypeDict.FileMiME(file);
|
fileInputStream = new FileInputStream(file);
|
||||||
|
Msg msg = TypeDict.FileMiME(fileInputStream);
|
||||||
if(msg.getCode().equals("200")){
|
if(msg.getCode().equals("200")){
|
||||||
File f = new File(saveDir+File.separator+fileName);
|
File f = new File(saveDir+File.separator+fileName);
|
||||||
String imgPath = saveDir+File.separator+fileName+"."+(msg.getData().toString().replace("image/",""));
|
String imgPath = saveDir+File.separator+fileName+"."+(msg.getData().toString().replace("image/",""));
|
||||||
@@ -137,9 +138,16 @@ public class ImgUrlUtil {
|
|||||||
resmap.put("res",false);
|
resmap.put("res",false);
|
||||||
resmap.put("StatusCode","500");
|
resmap.put("StatusCode","500");
|
||||||
}
|
}
|
||||||
|
if(fileInputStream!=null){
|
||||||
|
fileInputStream.close();
|
||||||
|
}
|
||||||
return resmap;
|
return resmap;
|
||||||
}catch (Exception e){
|
}catch (Exception e){
|
||||||
e.printStackTrace();
|
try{
|
||||||
|
if(fileInputStream!=null){
|
||||||
|
fileInputStream.close();
|
||||||
|
}
|
||||||
|
}catch (Exception e2){ }
|
||||||
resmap.put("res",false);
|
resmap.put("res",false);
|
||||||
resmap.put("StatusCode","500");
|
resmap.put("StatusCode","500");
|
||||||
return resmap;
|
return resmap;
|
||||||
|
|||||||
@@ -1,10 +1,14 @@
|
|||||||
package cn.hellohao.utils;
|
package cn.hellohao.utils;
|
||||||
|
|
||||||
|
import cn.hellohao.service.impl.S3Imageupload;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import java.sql.*;
|
import java.sql.*;
|
||||||
|
|
||||||
|
|
||||||
final class RunSqlScript {
|
final class RunSqlScript {
|
||||||
|
private static Logger logger = LoggerFactory.getLogger(RunSqlScript.class);
|
||||||
public static String DBDRIVER = "com.mysql.cj.jdbc.Driver";
|
public static String DBDRIVER = "com.mysql.cj.jdbc.Driver";
|
||||||
public static String DBURL ;
|
public static String DBURL ;
|
||||||
//现在使用的是mysql数据库,是直接连接的,所以此处必须有用户名和密码
|
//现在使用的是mysql数据库,是直接连接的,所以此处必须有用户名和密码
|
||||||
@@ -21,7 +25,7 @@ final class RunSqlScript {
|
|||||||
try {
|
try {
|
||||||
Class.forName(DBDRIVER);
|
Class.forName(DBDRIVER);
|
||||||
} catch (ClassNotFoundException e) {
|
} catch (ClassNotFoundException e) {
|
||||||
e.printStackTrace();
|
logger.error("RunSqlScript[29]", e);
|
||||||
}
|
}
|
||||||
//2、连接数据库
|
//2、连接数据库
|
||||||
//通过连接管理器连接数据库
|
//通过连接管理器连接数据库
|
||||||
@@ -29,14 +33,14 @@ final class RunSqlScript {
|
|||||||
//在连接的时候直接输入用户名和密码才可以连接
|
//在连接的时候直接输入用户名和密码才可以连接
|
||||||
conn = DriverManager.getConnection(DBURL,USERNAME,PASSWORD);
|
conn = DriverManager.getConnection(DBURL,USERNAME,PASSWORD);
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
e.printStackTrace();
|
logger.error("RunSqlScript[36]", e);
|
||||||
}
|
}
|
||||||
//3、向数据库中插入一条数据
|
//3、向数据库中插入一条数据
|
||||||
//String sql = "select count(*) from information_schema.columns where table_name = 'config' and column_name = 'id'";
|
//String sql = "select count(*) from information_schema.columns where table_name = 'config' and column_name = 'id'";
|
||||||
try {
|
try {
|
||||||
stmt = conn.createStatement();
|
stmt = conn.createStatement();
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
e.printStackTrace();
|
logger.error("RunSqlScript[43]", e);
|
||||||
}
|
}
|
||||||
//4、执行语句
|
//4、执行语句
|
||||||
try {
|
try {
|
||||||
@@ -46,7 +50,7 @@ final class RunSqlScript {
|
|||||||
count = resultSet.getInt(1);
|
count = resultSet.getInt(1);
|
||||||
}
|
}
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
e.printStackTrace();
|
logger.error("RunSqlScript[53]", e);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
//5、关闭操作
|
//5、关闭操作
|
||||||
@@ -54,7 +58,7 @@ final class RunSqlScript {
|
|||||||
stmt.close();
|
stmt.close();
|
||||||
conn.close();
|
conn.close();
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
e.printStackTrace();
|
logger.error("RunSqlScript[61]", e);
|
||||||
}
|
}
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
@@ -71,8 +75,7 @@ final class RunSqlScript {
|
|||||||
try {
|
try {
|
||||||
Class.forName(DBDRIVER);
|
Class.forName(DBDRIVER);
|
||||||
} catch (ClassNotFoundException e) {
|
} catch (ClassNotFoundException e) {
|
||||||
e.printStackTrace();
|
logger.error("RunSqlScript[78]", e);
|
||||||
Print.Normal("SqlHelper.java - ClassNotFoundException");
|
|
||||||
}
|
}
|
||||||
//2、连接数据库
|
//2、连接数据库
|
||||||
//通过连接管理器连接数据库
|
//通过连接管理器连接数据库
|
||||||
@@ -80,23 +83,21 @@ final class RunSqlScript {
|
|||||||
//在连接的时候直接输入用户名和密码才可以连接
|
//在连接的时候直接输入用户名和密码才可以连接
|
||||||
conn = DriverManager.getConnection(DBURL,USERNAME,PASSWORD);
|
conn = DriverManager.getConnection(DBURL,USERNAME,PASSWORD);
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
e.printStackTrace();
|
logger.error("RunSqlScript[86]", e);
|
||||||
Print.Normal("SqlHelper.java - SQLException1");
|
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
stmt = conn.createStatement();
|
stmt = conn.createStatement();
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
e.printStackTrace();
|
logger.error("RunSqlScript[91]", e);
|
||||||
Print.Normal("SqlHelper.java - SQLException2");
|
|
||||||
}
|
}
|
||||||
//4、执行语句
|
//4、执行语句
|
||||||
try {
|
try {
|
||||||
count = stmt.executeUpdate(sql);
|
count = stmt.executeUpdate(sql);
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
if(e.getMessage().contains("Duplicate key name") && e.getMessage().contains("index_md5key_url")){
|
if(e.getMessage().contains("Duplicate key name") && e.getMessage().contains("index_md5key_url")){
|
||||||
Print.Normal("Database index already exists, skip this step.");
|
logger.info("Database index already exists, skip this step.");
|
||||||
}else{
|
}else{
|
||||||
e.printStackTrace();
|
logger.error("RunSqlScript[100]", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//5、关闭操作
|
//5、关闭操作
|
||||||
@@ -104,7 +105,7 @@ final class RunSqlScript {
|
|||||||
stmt.close();
|
stmt.close();
|
||||||
conn.close();
|
conn.close();
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
Print.Normal("SqlHelper.java - SQLException4");
|
logger.error("RunSqlScript[108]", e);
|
||||||
}
|
}
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,9 @@ package cn.hellohao.utils;
|
|||||||
|
|
||||||
import cn.hellohao.pojo.Chunk;
|
import cn.hellohao.pojo.Chunk;
|
||||||
import cn.hellohao.pojo.Msg;
|
import cn.hellohao.pojo.Msg;
|
||||||
|
import org.apache.commons.io.FileUtils;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
@@ -13,6 +16,7 @@ import java.text.DecimalFormat;
|
|||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
public class SetFiles {
|
public class SetFiles {
|
||||||
|
private static Logger logger = LoggerFactory.getLogger(SetFiles.class);
|
||||||
// 转换文件方法
|
// 转换文件方法
|
||||||
public static File changeFile(MultipartFile multipartFile) {
|
public static File changeFile(MultipartFile multipartFile) {
|
||||||
// 获取文件名
|
// 获取文件名
|
||||||
@@ -47,17 +51,16 @@ public class SetFiles {
|
|||||||
|
|
||||||
// 转换文件方法
|
// 转换文件方法
|
||||||
public static File changeFile_new(MultipartFile multipartFile) {
|
public static File changeFile_new(MultipartFile multipartFile) {
|
||||||
// 获取文件名
|
|
||||||
String fileName = multipartFile.getOriginalFilename();//getOriginalFilename
|
String fileName = multipartFile.getOriginalFilename();//getOriginalFilename
|
||||||
// 获取文件后缀
|
|
||||||
String prefix = fileName.substring(fileName.lastIndexOf("."));
|
String prefix = fileName.substring(fileName.lastIndexOf("."));
|
||||||
// todo 修改临时文件文件名
|
// todo 修改临时文件文件名
|
||||||
File file = null;
|
File file = null;
|
||||||
try {
|
try {
|
||||||
file = File.createTempFile(fileName, prefix);
|
String new_FileName = System.getProperty("java.io.tmpdir")+"hellohao_tmp_upload"+File.separator+fileName;
|
||||||
multipartFile.transferTo(file);
|
file = new File(new_FileName);
|
||||||
|
FileUtils.copyInputStreamToFile(multipartFile.getInputStream(), file);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
logger.error("SetFiles.changeFile_new", e);
|
||||||
}
|
}
|
||||||
return file;
|
return file;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,15 +7,16 @@ import javax.imageio.ImageIO;
|
|||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
|
||||||
public class TypeDict {
|
public class TypeDict {
|
||||||
|
|
||||||
//apache大法
|
//apache大法
|
||||||
public static Msg FileMiME(File file ){
|
public static Msg FileMiME(InputStream stream){
|
||||||
final Msg msg = new Msg();
|
final Msg msg = new Msg();
|
||||||
try {
|
try {
|
||||||
Tika tika = new Tika();
|
Tika tika = new Tika();
|
||||||
String fileType = tika.detect(file);
|
String fileType = tika.detect(stream);
|
||||||
if (fileType != null && fileType.contains("/")) {
|
if (fileType != null && fileType.contains("/")) {
|
||||||
if(fileType.contains("image/")){
|
if(fileType.contains("image/")){
|
||||||
msg.setData(fileType);
|
msg.setData(fileType);
|
||||||
|
|||||||
@@ -30,22 +30,22 @@ private static final int VALICATE_CODE_LENGTH = 4;
|
|||||||
* @param height
|
* @param height
|
||||||
*/
|
*/
|
||||||
private static void fillBackground(Graphics graphics, int width, int height) {
|
private static void fillBackground(Graphics graphics, int width, int height) {
|
||||||
// 填充背景
|
// 填充背景
|
||||||
graphics.setColor(Color.WHITE);
|
graphics.setColor(Color.WHITE);
|
||||||
//设置矩形坐标x y 为0
|
//设置矩形坐标x y 为0
|
||||||
graphics.fillRect(0, 0, width, height);
|
graphics.fillRect(0, 0, width, height);
|
||||||
|
|
||||||
// 加入干扰线条
|
// 加入干扰线条
|
||||||
for (int i = 0; i < 8; i++) {
|
for (int i = 0; i < 8; i++) {
|
||||||
//设置随机颜色算法参数
|
//设置随机颜色算法参数
|
||||||
graphics.setColor(RandomUtils.randomColor(40, 150));
|
graphics.setColor(RandomUtils.randomColor(40, 150));
|
||||||
Random random = new Random();
|
Random random = new Random();
|
||||||
int x = random.nextInt(width);
|
int x = random.nextInt(width);
|
||||||
int y = random.nextInt(height);
|
int y = random.nextInt(height);
|
||||||
int x1 = random.nextInt(width);
|
int x1 = random.nextInt(width);
|
||||||
int y1 = random.nextInt(height);
|
int y1 = random.nextInt(height);
|
||||||
graphics.drawLine(x, y, x1, y1);
|
graphics.drawLine(x, y, x1, y1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -59,15 +59,15 @@ graphics.drawLine(x, y, x1, y1);
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public String generate(int width, int height, OutputStream os) throws IOException {
|
public String generate(int width, int height, OutputStream os) throws IOException {
|
||||||
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
|
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
|
||||||
Graphics graphics = image.getGraphics();
|
Graphics graphics = image.getGraphics();
|
||||||
fillBackground(graphics, width, height);
|
fillBackground(graphics, width, height);
|
||||||
String randomStr = RandomUtils.randomString(VALICATE_CODE_LENGTH);
|
String randomStr = RandomUtils.randomString(VALICATE_CODE_LENGTH);
|
||||||
createCharacter(graphics, randomStr);
|
createCharacter(graphics, randomStr);
|
||||||
graphics.dispose();
|
graphics.dispose();
|
||||||
//设置JPEG格式
|
//设置JPEG格式
|
||||||
ImageIO.write(image, "JPEG", os);
|
ImageIO.write(image, "JPEG", os);
|
||||||
return randomStr;
|
return randomStr;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -79,20 +79,20 @@ return randomStr;
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public VerifyCode generate(int width, int height) {
|
public VerifyCode generate(int width, int height) {
|
||||||
VerifyCode verifyCode = null;
|
VerifyCode verifyCode = null;
|
||||||
try (
|
try (
|
||||||
//将流的初始化放到这里就不需要手动关闭流
|
//将流的初始化放到这里就不需要手动关闭流
|
||||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||||
) {
|
) {
|
||||||
String code = generate(width, height, baos);
|
String code = generate(width, height, baos);
|
||||||
verifyCode = new VerifyCode();
|
verifyCode = new VerifyCode();
|
||||||
verifyCode.setCode(code);
|
verifyCode.setCode(code);
|
||||||
verifyCode.setImgBytes(baos.toByteArray());
|
verifyCode.setImgBytes(baos.toByteArray());
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
logger.error(e.getMessage(), e);
|
logger.error(e.getMessage(), e);
|
||||||
verifyCode = null;
|
verifyCode = null;
|
||||||
}
|
}
|
||||||
return verifyCode;
|
return verifyCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -102,15 +102,15 @@ return verifyCode;
|
|||||||
* @param randomStr
|
* @param randomStr
|
||||||
*/
|
*/
|
||||||
private void createCharacter(Graphics g, String randomStr) {
|
private void createCharacter(Graphics g, String randomStr) {
|
||||||
char[] charArray = randomStr.toCharArray();
|
char[] charArray = randomStr.toCharArray();
|
||||||
for (int i = 0; i < charArray.length; i++) {
|
for (int i = 0; i < charArray.length; i++) {
|
||||||
//设置RGB颜色算法参数
|
//设置RGB颜色算法参数
|
||||||
g.setColor(new Color(50 + RandomUtils.nextInt(100),
|
g.setColor(new Color(50 + RandomUtils.nextInt(100),
|
||||||
50 + RandomUtils.nextInt(100), 50 + RandomUtils.nextInt(100)));
|
50 + RandomUtils.nextInt(100), 50 + RandomUtils.nextInt(100)));
|
||||||
//设置字体大小,类型
|
//设置字体大小,类型
|
||||||
g.setFont(new Font(FONT_TYPES[RandomUtils.nextInt(FONT_TYPES.length)], Font.BOLD, 26));
|
g.setFont(new Font(FONT_TYPES[RandomUtils.nextInt(FONT_TYPES.length)], Font.BOLD, 26));
|
||||||
//设置x y 坐标
|
//设置x y 坐标
|
||||||
g.drawString(String.valueOf(charArray[i]), 15 * i + 5, 19 + RandomUtils.nextInt(8));
|
g.drawString(String.valueOf(charArray[i]), 15 * i + 5, 19 + RandomUtils.nextInt(8));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4,7 +4,7 @@ server.port=10088
|
|||||||
#前端域名需要带协议头http(s)://
|
#前端域名需要带协议头http(s)://
|
||||||
CROS_ALLOWED_ORIGINS=${HELLOHAO_WEB_HOST:http://127.0.0.1:8080}
|
CROS_ALLOWED_ORIGINS=${HELLOHAO_WEB_HOST:http://127.0.0.1:8080}
|
||||||
#数据库账号
|
#数据库账号
|
||||||
spring.datasource.username=${MYSQL_NAME:root}
|
spring.datasource.username=${MYSQL_USERNAME:root}
|
||||||
#数据库密码test
|
#数据库密码test
|
||||||
spring.datasource.password=${MYSQL_PASS:root}
|
spring.datasource.password=${MYSQL_PASS:root}
|
||||||
#数据库链接地址
|
#数据库链接地址
|
||||||
|
|||||||
@@ -41,10 +41,10 @@
|
|||||||
<where>
|
<where>
|
||||||
1=1
|
1=1
|
||||||
<if test="albumkey != null">
|
<if test="albumkey != null">
|
||||||
and `albumkey` like '%${albumkey}%'
|
and `albumkey` like CONCAT('%', #{albumkey}, '%')
|
||||||
</if>
|
</if>
|
||||||
<if test="username != null">
|
<if test="username != null">
|
||||||
and `username` like '%${username}%'
|
and `username` like CONCAT('%', #{username}, '%')
|
||||||
</if>
|
</if>
|
||||||
<if test="userid != null">
|
<if test="userid != null">
|
||||||
and a.userid = #{userid}
|
and a.userid = #{userid}
|
||||||
|
|||||||
@@ -53,11 +53,11 @@
|
|||||||
<choose>
|
<choose>
|
||||||
<when test="selecttype==1">
|
<when test="selecttype==1">
|
||||||
and
|
and
|
||||||
a.userid in ( SELECT id from `user` where username LIKE '%${username}%')
|
a.userid in ( SELECT id from `user` where username LIKE CONCAT('%', #{username}, '%'))
|
||||||
</when>
|
</when>
|
||||||
<otherwise>
|
<otherwise>
|
||||||
and
|
and
|
||||||
a.userid not in ( SELECT id from `user` where username LIKE '%${username}%')
|
a.userid not in ( SELECT id from `user` where username LIKE CONCAT('%', #{username}, '%'))
|
||||||
</otherwise>
|
</otherwise>
|
||||||
</choose>
|
</choose>
|
||||||
</if>
|
</if>
|
||||||
@@ -71,10 +71,10 @@
|
|||||||
and CONCAT(
|
and CONCAT(
|
||||||
imgurl,
|
imgurl,
|
||||||
idname
|
idname
|
||||||
) LIKE '%${searchname}%'
|
) LIKE CONCAT('%', #{searchname}, '%')
|
||||||
</if>
|
</if>
|
||||||
<if test="idname != null and idname !=''">
|
<if test="idname != null and idname !=''">
|
||||||
and idname LIKE '%${idname}%'
|
and idname LIKE CONCAT('%', #{idname}, '%')
|
||||||
</if>
|
</if>
|
||||||
order by
|
order by
|
||||||
<choose>
|
<choose>
|
||||||
@@ -126,13 +126,14 @@
|
|||||||
`format`,
|
`format`,
|
||||||
about,
|
about,
|
||||||
violation,
|
violation,
|
||||||
idname
|
idname,
|
||||||
|
brieflink,
|
||||||
|
shortlink
|
||||||
)
|
)
|
||||||
VALUES (null, #{imgname}, #{imgurl}, #{userid}, #{updatetime},#{sizes},#{abnormal},#{source},#{imgtype},
|
VALUES (null, #{imgname}, #{imgurl}, #{userid}, #{updatetime},#{sizes},#{abnormal},#{source},#{imgtype},
|
||||||
#{explains},#{md5key},#{imguid},#{format},#{about},null,#{idname})
|
#{explains},#{md5key},#{imguid},#{format},#{about},null,#{idname},#{brieflink},#{shortlink})
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
|
|
||||||
<!-- 此用户下总数 -->
|
<!-- 此用户下总数 -->
|
||||||
<select id="countimg" parameterType="integer" resultType="integer">
|
<select id="countimg" parameterType="integer" resultType="integer">
|
||||||
select count(*) from imgdata where userid = #{userid}
|
select count(*) from imgdata where userid = #{userid}
|
||||||
@@ -150,6 +151,14 @@
|
|||||||
select * from imgdata where id = #{id}
|
select * from imgdata where id = #{id}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="selectImgByBrieflink" parameterType="string" resultType="cn.hellohao.pojo.Images">
|
||||||
|
select * from imgdata where binary brieflink = #{brieflink}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectImgByShortlink" parameterType="string" resultType="cn.hellohao.pojo.Images">
|
||||||
|
select * from imgdata where binary shortlink = #{shortlink}
|
||||||
|
</select>
|
||||||
|
|
||||||
<select id="counts" resultType="integer">
|
<select id="counts" resultType="integer">
|
||||||
select count(*) from imgdata where 1=1
|
select count(*) from imgdata where 1=1
|
||||||
<if test="userid != null">
|
<if test="userid != null">
|
||||||
|
|||||||
@@ -28,6 +28,7 @@
|
|||||||
WHEN storageType=6 THEN '腾讯云'
|
WHEN storageType=6 THEN '腾讯云'
|
||||||
WHEN storageType=7 THEN 'FTP'
|
WHEN storageType=7 THEN 'FTP'
|
||||||
WHEN storageType=8 THEN 'S3协议'
|
WHEN storageType=8 THEN 'S3协议'
|
||||||
|
WHEN storageType=9 THEN 'WebDAV'
|
||||||
ELSE '未知' END AS storageName,
|
ELSE '未知' END AS storageName,
|
||||||
keyname
|
keyname
|
||||||
FROM `keys` GROUP BY storageType,id,storageName,keyname
|
FROM `keys` GROUP BY storageType,id,storageName,keyname
|
||||||
@@ -51,7 +52,8 @@
|
|||||||
RequestAddress = #{RequestAddress},
|
RequestAddress = #{RequestAddress},
|
||||||
keyname = #{keyname},
|
keyname = #{keyname},
|
||||||
Region = #{Region},
|
Region = #{Region},
|
||||||
RootPath = #{RootPath}
|
RootPath = #{RootPath},
|
||||||
|
SysTransmit=#{SysTransmit}
|
||||||
WHERE
|
WHERE
|
||||||
storageType = #{storageType}
|
storageType = #{storageType}
|
||||||
</update>
|
</update>
|
||||||
|
|||||||
@@ -53,7 +53,6 @@
|
|||||||
</where>
|
</where>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<!-- 查询当前用户:根据邮箱,根据id -->
|
|
||||||
<select id="getUsers" parameterType="cn.hellohao.pojo.User" resultType="cn.hellohao.pojo.User">
|
<select id="getUsers" parameterType="cn.hellohao.pojo.User" resultType="cn.hellohao.pojo.User">
|
||||||
SELECT id,
|
SELECT id,
|
||||||
username,
|
username,
|
||||||
@@ -85,7 +84,7 @@
|
|||||||
</if>
|
</if>
|
||||||
</where>
|
</where>
|
||||||
</select>
|
</select>
|
||||||
<!-- 查询当前用户:根据id -->
|
|
||||||
<select id="getUsersid" parameterType="integer" resultType="cn.hellohao.pojo.User">
|
<select id="getUsersid" parameterType="integer" resultType="cn.hellohao.pojo.User">
|
||||||
SELECT id,
|
SELECT id,
|
||||||
username,
|
username,
|
||||||
@@ -101,7 +100,7 @@
|
|||||||
FROM user
|
FROM user
|
||||||
WHERE id = #{id}
|
WHERE id = #{id}
|
||||||
</select>
|
</select>
|
||||||
<!-- 查询当前用户:根据uid -->
|
|
||||||
<select id="getUsersMail" parameterType="string" resultType="cn.hellohao.pojo.User">
|
<select id="getUsersMail" parameterType="string" resultType="cn.hellohao.pojo.User">
|
||||||
SELECT id,
|
SELECT id,
|
||||||
username,
|
username,
|
||||||
@@ -118,13 +117,6 @@
|
|||||||
WHERE uid = #{uid}
|
WHERE uid = #{uid}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<!-- 插入图片信息 -->
|
|
||||||
<!-- <insert id="insertimg" parameterType="cn.hellohao.pojo.Images">-->
|
|
||||||
<!-- INSERT INTO imgdata (id, imgname, imgurl, userid, updatetime,sizes,abnormal,source,imgtype,md5key,imguid,format,about,violation)-->
|
|
||||||
<!-- VALUES (NULL, #{imgname}, #{imgurl}, #{userid}, #{updatetime},#{sizes},#{abnormal},#{source},#{imgtype},#{md5key},#{imguid},#{format},#{about},null)-->
|
|
||||||
<!-- </insert>-->
|
|
||||||
|
|
||||||
<!-- 修改资料 -->
|
|
||||||
<update id="change" parameterType="cn.hellohao.pojo.User">
|
<update id="change" parameterType="cn.hellohao.pojo.User">
|
||||||
UPDATE `user`
|
UPDATE `user`
|
||||||
<set>
|
<set>
|
||||||
@@ -185,12 +177,10 @@
|
|||||||
SELECT count(username) FROM `user` where username=#{username}
|
SELECT count(username) FROM `user` where username=#{username}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<!-- 查询用户总数 -->
|
|
||||||
<select id="getUserTotal" resultType="integer">
|
<select id="getUserTotal" resultType="integer">
|
||||||
SELECT count(*) FROM `user`
|
SELECT count(*) FROM `user`
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<!-- 获取用户的详细信息 -->
|
|
||||||
<select id="getuserlist" resultType="cn.hellohao.pojo.User" parameterType="string">
|
<select id="getuserlist" resultType="cn.hellohao.pojo.User" parameterType="string">
|
||||||
SELECT
|
SELECT
|
||||||
id,
|
id,
|
||||||
@@ -213,7 +203,7 @@
|
|||||||
and CONCAT(
|
and CONCAT(
|
||||||
username,
|
username,
|
||||||
email
|
email
|
||||||
) LIKE '%${username}%'
|
) LIKE CONCAT('%', #{username}, '%')
|
||||||
</if>
|
</if>
|
||||||
order by birthder desc
|
order by birthder desc
|
||||||
</select>
|
</select>
|
||||||
|
|||||||
Reference in New Issue
Block a user