96 lines
2.6 KiB
Plaintext
96 lines
2.6 KiB
Plaintext
|
|
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;
|
|||
|
|
}
|
|||
|
|
}
|