1.controller层
package com.czqc.czc.web.controller;
import com.aliyun.oss.ClientException;
import com.aliyun.oss.OSSClient;
import com.aliyun.oss.OSSException;
import com.aliyun.oss.model.ObjectMetadata;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import jdk.internal.org.objectweb.asm.tree.analysis.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import java.io.FileNotFoundException;
@Api(description = "阿里云相关")
@RestController("/AliUpload")
public class MyAliTestController {
@ApiOperation("上传文件")
@RequestMapping(value="uploadFile",method =RequestMethod.POST)
public String fileUpload(MultipartFile multipartFile, String fileName) {
try {
fileName= multipartFile.getOriginalFilename();
String url= AliTest.uploadFile(fileName,multipartFile);
return url;
} catch (FileNotFoundException e) {
e.printStackTrace();
return null;
}
}
}
2、service
package com.czqc.czc.web.controller;
import com.aliyun.oss.ClientException;
import com.aliyun.oss.OSSClient;
import com.aliyun.oss.OSSException;
import com.aliyun.oss.model.ObjectMetadata;
import org.springframework.web.multipart.MultipartFile;
import java.io.ByteArrayInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Date;
public class AliTest {
private static String endpoint = "你的endpoint(一般外网)";
private static String accessKeyId = "你的key";
private static String accessKeySecret = "你的Secret";
private static String bucketName = "你的bucketName";
/**
* 功能描述:
*
* @param:[objectKey, multipartFile 文件的新名称]
* @return:java.lang.String
* @date:2018/10/14 15:46
**/
public static String uploadFile(String objectKey, MultipartFile multipartFile)
throws OSSException, ClientException, FileNotFoundException {
// 创建OSSClient的实例
OSSClient ossClient = new OSSClient(endpoint,accessKeyId,accessKeySecret);
StringBuffer sb = new StringBuffer();
// 上传的文件不是空,并且文件的名字不是空字符串
if (multipartFile.getSize() != 0 && !"".equals(multipartFile.getName())) {
ObjectMetadata om = new ObjectMetadata();
om.setContentLength(multipartFile.getSize());
// 设置文件上传到服务器的名称
om.addUserMetadata("filename", objectKey);
try {
ossClient.putObject(bucketName, objectKey, new ByteArrayInputStream(multipartFile.getBytes()), om);
} catch (IOException e) {
}
}
// 设置这个文件地址的有效时间
// Date expiration = new Date(System.currentTimeMillis() + 3600L * 1000 * 24 * 365 * 100);
Date expiration = new Date(new Date().getTime() + 3600l * 1000 * 24 * 365 * 10);
String url = ossClient.generatePresignedUrl(bucketName, objectKey, expiration).toString();
return url;
}
}
3.maven依赖包
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>2.8.3</version>
</dependency>