IntelligentRecognition/ah-jjsp-service/.svn/pristine/f0/f0caf35f3d254714ec6564ac1bd...

96 lines
2.6 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.securityControl.task.util;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.model.OSSObject;
import org.apache.commons.io.IOUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.util.ObjectUtils;
import java.io.IOException;
import java.io.InputStream;
@Component
public class OssUtils {
@Value("${oss.endpoint}")
private String endpoint;
@Value("${oss.accessKeyId}")
private String accessKeyId;
@Value("${oss.accessKeySecret}")
private String accessKeySecret;
@Value("${oss.bucketName}")
private String bucketName;
private static byte[] lock = new byte[0];
// 位数默认是8位
private final static long w = 100000000;
public static String createID() {
long r = 0;
synchronized (lock) {
r = (long) ((Math.random() + 1) * w);
}
return System.currentTimeMillis() + String.valueOf(r).substring(1);
}
/**
* 上传图片
*
* @param inputStream
* @return
*/
public String fileUpload(InputStream inputStream) {
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
String objectName = createID();
try {
ossClient.putObject(bucketName, objectName, inputStream);
return objectName;
} catch (Exception e) {
System.err.println("文件上传失败");
e.printStackTrace();
return null;
} finally {
ossClient.shutdown();
}
}
/**
* 下载图片
*
* @param objectName
* @return
*/
public byte[] getFile(String objectName) {
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
byte[] bytes = null;
InputStream inputStream = null;
try {
OSSObject ossObject = ossClient.getObject(bucketName, objectName);
inputStream = ossObject.getObjectContent();
bytes = IOUtils.toByteArray(inputStream);
} catch (Exception e) {
System.out.println("下载文件失败!");
e.printStackTrace();
return null;
} finally {
ossClient.shutdown();
if (!ObjectUtils.isEmpty(inputStream)) {
try {
inputStream.close();
} catch (IOException e) {
System.out.println("关闭流失败!");
e.printStackTrace();
}
}
}
return bytes;
}
}