WANG 6 years ago
parent
commit
c4a54a767c

+ 12 - 0
examcloud-exchange-inner-service/src/main/java/cn/com/qmth/examcloud/exchange/inner/service/UpyunService.java

@@ -1,5 +1,6 @@
 package cn.com.qmth.examcloud.exchange.inner.service;
 
+import java.io.File;
 import java.io.InputStream;
 
 import cn.com.qmth.examcloud.exchange.inner.service.bean.UpyunPathEnvironmentInfo;
@@ -24,4 +25,15 @@ public interface UpyunService {
 	 */
 	String writeFile(String siteId, UpyunPathEnvironmentInfo env, InputStream in);
 
+	/**
+	 * 写文件
+	 *
+	 * @author WANGWEI
+	 * @param siteId
+	 * @param env
+	 * @param file
+	 * @return
+	 */
+	String writeFile(String siteId, UpyunPathEnvironmentInfo env, File file);
+
 }

+ 13 - 0
examcloud-exchange-inner-service/src/main/java/cn/com/qmth/examcloud/exchange/inner/service/impl/UpyunServiceImpl.java

@@ -1,5 +1,6 @@
 package cn.com.qmth.examcloud.exchange.inner.service.impl;
 
+import java.io.File;
 import java.io.InputStream;
 
 import org.springframework.stereotype.Service;
@@ -37,4 +38,16 @@ public class UpyunServiceImpl implements UpyunService {
 		return url;
 	}
 
+	@Override
+	public String writeFile(String siteId, UpyunPathEnvironmentInfo env, File file) {
+		env.setCurrentTimeMillis(String.valueOf(System.currentTimeMillis()));
+
+		UpyunSite upyunSite = UpyunSiteManager.getUpyunSite(siteId);
+		UpYunClient upYunClient = UpyunSiteManager.getUpYunClient(siteId);
+
+		String path = FreeMarkerUtil.process(upyunSite.getPath(), env);
+		String url = upYunClient.writeFile(path, file);
+		return url;
+	}
+
 }

+ 23 - 0
examcloud-exchange-inner-service/src/main/java/cn/com/qmth/examcloud/exchange/inner/service/upyun/UpYunClient.java

@@ -1,5 +1,8 @@
 package cn.com.qmth.examcloud.exchange.inner.service.upyun;
 
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
 import java.io.InputStream;
 import java.io.UnsupportedEncodingException;
 import java.security.MessageDigest;
@@ -81,6 +84,26 @@ public class UpYunClient {
 		this.password = md5(password);
 	}
 
+	/**
+	 * 上传文件
+	 *
+	 * @author WANGWEI
+	 * @param filePath
+	 * @param file
+	 * @return
+	 */
+	public String writeFile(String filePath, File file) {
+		InputStream in = null;
+		try {
+			in = new FileInputStream(file);
+			return writeFile(filePath, in);
+		} catch (IOException e) {
+			throw new ExamCloudRuntimeException(e);
+		} finally {
+			IOUtils.closeQuietly(in);
+		}
+	}
+
 	/**
 	 * 上传文件
 	 *

+ 2 - 16
examcloud-exchange-outer-service/src/main/java/cn/com/qmth/examcloud/exchange/outer/service/impl/FaceServiceImpl.java

@@ -1,8 +1,6 @@
 package cn.com.qmth.examcloud.exchange.outer.service.impl;
 
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
 import java.net.URI;
 import java.util.List;
 import java.util.Map;
@@ -16,7 +14,6 @@ import org.apache.http.client.utils.URIBuilder;
 import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.http.impl.client.HttpClients;
 import org.apache.http.util.EntityUtils;
-import org.apache.poi.util.IOUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
@@ -26,7 +23,6 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.google.common.collect.Maps;
 
-import cn.com.qmth.examcloud.commons.base.exception.ExamCloudRuntimeException;
 import cn.com.qmth.examcloud.commons.base.exception.StatusException;
 import cn.com.qmth.examcloud.commons.base.logging.ExamCloudLog;
 import cn.com.qmth.examcloud.commons.base.logging.ExamCloudLogFactory;
@@ -96,18 +92,8 @@ public class FaceServiceImpl implements FaceService {
 		env.setFileSuffix(fileSuffix);
 		env.setRootOrgId(String.valueOf(rootOrgId));
 		env.setUserId(String.valueOf(id));
-		InputStream in = null;
-		String photoUrl = null;
-		try {
-			in = new FileInputStream(file);
-			photoUrl = upyunService.writeFile("studentPhoto", env, in);
-		} catch (StatusException e) {
-			throw e;
-		} catch (Exception e) {
-			throw new ExamCloudRuntimeException(e);
-		} finally {
-			IOUtils.closeQuietly(in);
-		}
+
+		String photoUrl = upyunService.writeFile("studentPhoto", env, file);
 
 		String faceToken = detect(photoUrl);
 

+ 6 - 6
examcloud-exchange-starter/src/main/resources/application-dev.properties

@@ -17,10 +17,10 @@ $dir=D:/Temp/dir
 $facepp.apiKey=VOlRKNlCSAYIOcSLDKOaZukkqpmi-Pwo
 $facepp.apiSecret=bzMjy-JfwtVUxVDMzagFh7ggbQBC71f1
 
-$upyun.site.exam-cloud.bucketName=exam-cloud-test
-$upyun.site.exam-cloud.userName=examcloud
-$upyun.site.exam-cloud.password=ecs87863577!@#
+$upyun.site.1.bucketName=exam-cloud-test
+$upyun.site.1.userName=examcloud
+$upyun.site.1.password=examcloud123456
 
-$upyun.site.exam-cloud-test.bucketName=exam-cloud-test
-$upyun.site.exam-cloud-test.userName=examcloud
-$upyun.site.exam-cloud-test.password=ecs87863577!@#
+$upyun.site.2.bucketName=exam-cloud-test
+$upyun.site.2.userName=examcloud
+$upyun.site.2.password=examcloud123456

+ 6 - 6
examcloud-exchange-starter/src/main/resources/application-prod.properties

@@ -21,11 +21,11 @@ $facepp.apiSecret=bzMjy-JfwtVUxVDMzagFh7ggbQBC71f1
 $tempDir=/root/project/examcloud/examcloud-exchange/tempDir
 $dir=/root/project/examcloud/examcloud-exchange/dir
 
-$upyun.site.exam-cloud.bucketName=exam-cloud
-$upyun.site.exam-cloud.userName=examcloud
-$upyun.site.exam-cloud.password=ecs87863577!@#
+$upyun.site.1.bucketName=exam-cloud
+$upyun.site.1.userName=examcloud
+$upyun.site.1.password=ecs87863577!@#
 
-$upyun.site.exam-cloud-test.bucketName=exam-cloud-test
-$upyun.site.exam-cloud-test.userName=examcloud
-$upyun.site.exam-cloud-test.password=ecs87863577!@#
+$upyun.site.2.bucketName=exam-cloud-test
+$upyun.site.2.userName=examcloud
+$upyun.site.2.password=examcloud123456
 

+ 6 - 6
examcloud-exchange-starter/src/main/resources/application-test.properties

@@ -17,10 +17,10 @@ $facepp.apiSecret=bzMjy-JfwtVUxVDMzagFh7ggbQBC71f1
 $tempDir=/home/qmth/project/examcloud/examcloud-exchange/tempDir
 $dir=/home/qmth/project/examcloud/examcloud-exchange/dir
 
-$upyun.site.exam-cloud.bucketName=exam-cloud-test
-$upyun.site.exam-cloud.userName=examcloud
-$upyun.site.exam-cloud.password=ecs87863577!@#
+$upyun.site.1.bucketName=exam-cloud-test
+$upyun.site.1.userName=examcloud
+$upyun.site.1.password=examcloud123456
 
-$upyun.site.exam-cloud-test.bucketName=exam-cloud-test
-$upyun.site.exam-cloud-test.userName=examcloud
-$upyun.site.exam-cloud-test.password=ecs87863577!@#
+$upyun.site.2.bucketName=exam-cloud-test
+$upyun.site.2.userName=examcloud
+$upyun.site.2.password=examcloud123456

+ 3 - 3
examcloud-exchange-starter/src/main/resources/upyun.xml

@@ -7,7 +7,7 @@
 		<!--名称 -->
 		<name>考生照片</name>
 		<!--又拍云账户ID标识 -->
-		<upyunId>exam-cloud</upyunId>
+		<upyunId>1</upyunId>
 		<!--文件大小限制(IO流限制) -->
 		<maxSize>1M</maxSize>
 		<!--又拍云存储路径 -->
@@ -17,7 +17,7 @@
 	<site>
 		<id>capturePhoto</id>
 		<name>网考学生端抓拍照片</name>
-		<upyunId>exam-cloud</upyunId>
+		<upyunId>1</upyunId>
 		<maxSize>1M</maxSize>
 		<path>/capture_photo/${rootOrgId}/${userId}/${currentTimeMillis}${fileSuffix}</path>
 	</site>
@@ -25,7 +25,7 @@
 	<site>
 		<id>questionAudio</id>
 		<name>试题音频</name>
-		<upyunId>exam-cloud-test</upyunId>
+		<upyunId>2</upyunId>
 		<maxSize>1M</maxSize>
 		<path>/question_audio/prod/audio/${questionId}/${randomNumber}/${fileName}</path>
 	</site>