import com.aliyun.oss.ClientException;
import com.aliyun.oss.OSSClient;
import com.aliyun.oss.OSSException;
import com.aliyun.oss.model.CannedAccessControlList;
import com.aliyun.oss.model.CreateBucketRequest;
import com.aliyun.oss.model.PutObjectRequest;
import com.aliyun.oss.model.PutObjectResult;
import org.slf4j.LoggerFactory;
import javax.imageio.ImageIO;
import java.awt.*;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;
/**
* 用于aliyunOSS上传工具类
*/
@org.springframework.stereotype.Component
public class AliyunOSSUpLoadUtil {
private static final org.slf4j.Logger logger = LoggerFactory.getLogger(AliyunOSSUpLoadUtil.class);
private static String FILE_URL;
/**
* 上传文件。
*/
public static String upLoad(File file,String fileHost,String userId) {
boolean isImage = true;
// 判断所要上传的图片是否是图片,图片可以预览,其他文件不提供通过URL预览
try {
Image image = ImageIO.read(file);
isImage = image == null ? false : true;
} catch (IOException e) {
e.printStackTrace();
}
logger.info("------OSS文件上传开始--------文件名:" + file.getName());
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String dateStr = format.format(new Date());
// 判断文件
if (file == null) {
return null;
}
// 创建OSSClient实例。
OSSClient ossClient = new OSSClient(AliyunOssParameters.endpoint, AliyunOssParameters.accessKeyId, AliyunOssParameters.accessKeySecret);
try {
// 判断容器是否存在,不存在就创建
if (!ossClient.doesBucketExist(AliyunOssParameters.bucketName)) {
ossClient.createBucket(AliyunOssParameters.bucketName);
CreateBucketRequest createBucketRequest = new CreateBucketRequest(AliyunOssParameters.bucketName);
createBucketRequest.setCannedACL(CannedAccessControlList.PublicRead);
ossClient.createBucket(createBucketRequest);
}
String fileUrl = fileHost + "/" + (userId+"/"+dateStr + "/" + UUID.randomUUID().toString().replace("-", "") + "-" + file.getName());
if (isImage) {
FILE_URL = "https://" + AliyunOssParameters.bucketName + "." + AliyunOssParameters.endpoint + "/" + fileUrl;
} else {
FILE_URL = "非图片,不可预览。文件路径为:" + fileUrl;
}
// 上传文件
PutObjectResult result = ossClient.putObject(new PutObjectRequest(AliyunOssParameters.bucketName, fileUrl, file));
ossClient.setBucketAcl(AliyunOssParameters.bucketName, CannedAccessControlList.PublicRead);
if (result != null) {
logger.info("------OSS文件上传成功------路径为:" + fileUrl);
}
} catch (OSSException oe) {
logger.error(oe.getMessage());
} catch (ClientException ce) {
logger.error(ce.getErrorMessage());
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
return FILE_URL;
}
}
public class AliyunOssParameters {
private AliyunOssParameters(){}
public static final String bucketName="zgmproject";
public static final String endpoint ="oss-cn-beijing.aliyuncs.com";
public static final String accessKeyId="LTAI7CuGElVyKydo";
public static final String accessKeySecret="5qmY0k0OW14mJrqxXdRtSKaq92XaEE";
public static final String FILE_HOST="zgm_auth/";
}
阿里oss图片上转
于 2019-11-06 18:37:44 首次发布
6129

被折叠的 条评论
为什么被折叠?



