MAVEN导入
<!-- 阿里云文件上传-->
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>2.7.0</version>
</dependency>
工具类
package com.ruoyi.web.controller.tool;
import java.io.ByteArrayInputStream;
import java.io.File;
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;
public class AliyunOssUtil {
private static String endpoint = "XXXXXXXXXXXXXXXXXXXXX";
private static String accessKeyId = "XXXXXX";
private static String accessKeySecret = "XXXXXX";
private static String baseBucketName = "XXXXX";
/**
* 文件上传
* uploadPath:上传路径:/camera/photo/2017/09/12/
* fileName:xxx.png
* @return
*/
public static String upload(String uploadPath,String fileName,File file){
String uploadUrl = "";
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
try{
if (!ossClient.doesBucketExist(baseBucketName)) {
/*
* Create a new OSS bucket
* */
ossClient.createBucket(baseBucketName);
CreateBucketRequest createBucketRequest= new CreateBucketRequest(baseBucketName);
createBucketRequest.setCannedACL(CannedAccessControlList.PublicRead);
ossClient.createBucket(createBucketRequest);
}
String key = uploadPath + fileName;
/*
* Upload an object to your bucket
*/
ossClient.putObject(new PutObjectRequest(baseBucketName, uploadPath + fileName, file));
uploadUrl = key;
}catch (OSSException oe) {
System.out.println("Error Message: " + oe.getErrorMessage());
} catch (ClientException ce) {
System.out.println("Error Message: " + ce.getMessage());
} finally {
ossClient.shutdown();
}
return uploadUrl;
}
/**
* 文件上传
* uploadPath:上传路径:/camera/photo/2017/09/12/
* fileName:xxx.png
* @return
*/
public static String upload(String uploadPath,String fileName,byte[] bytes){
String uploadUrl = "";
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
try{
if (!ossClient.doesBucketExist(baseBucketName)) {
/*
* Create a new OSS bucket
* */
ossClient.createBucket(baseBucketName);
CreateBucketRequest createBucketRequest= new CreateBucketRequest(baseBucketName);
createBucketRequest.setCannedACL(CannedAccessControlList.PublicRead);
ossClient.createBucket(createBucketRequest);
}
String key = uploadPath + fileName;
/*
* Upload an object to your bucket
*/
ossClient.putObject(new PutObjectRequest(baseBucketName, key, new ByteArrayInputStream(bytes)));
uploadUrl = key;
}catch (OSSException oe) {
System.out.println("Error Message: " + oe.getErrorCode());
} catch (ClientException ce) {
System.out.println("Error Message: " + ce.getMessage());
} finally {
ossClient.shutdown();
}
return uploadUrl;
}
}
调用
public String uploadFile(MultipartFile file) throws Exception{
try
{
String fileName = file.getOriginalFilename();
String ext = fileName.substring(fileName.lastIndexOf("."));
String newFileName = UUID.randomUUID().toString()+ext;
Date now = new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(now);
Integer month = cal.get(Calendar.MONTH) + 1;
String uploadPath = "equip" + "/" + cal.get(Calendar.YEAR) + "/" + month + "/" + cal.get(Calendar.DAY_OF_MONTH) + "/";
String uploadUrl = AliyunOssUtil.upload(uploadPath, newFileName, file.getBytes());
return "https://jzyxznkj-oss.oss-cn-hangzhou.aliyuncs.com/" + uploadUrl;
}
catch (Exception e)
{
return "";
}
}