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

96 lines
2.6 KiB
Plaintext
Raw Normal View History

2024-05-24 16:09:40 +08:00
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;
}
}