一:pom添加以来jar
com.aliyun.oss
aliyun-sdk-oss
2.8.3
当然,也能下载jar导入项目;
二:关于文件上传的参数配置
新建 properties文件
三:在业务逻辑层获取阿里云对象
1:先获取属性文件
final static String endpoint = OssUtil.getConfig("contract");final static String accessKeyId = OssUtil.getConfig("accessKeyIdContract");final static String accessKeySecret = OssUtil.getConfig("accessKeySecretContract");final static String bucketName = OssUtil.getConfig("bucketName4C");
2:属性文件的读取方法;
public classOssUtil {protected static Logger logger = LogManager.getLogger(OssUtil.class);public staticString getConfig(String key) {
String value= "";
OssUtil propertiesUtil= newOssUtil();
InputStream in= null;
Properties props= newProperties();
in= propertiesUtil.getClass().getResourceAsStream("/oss.properties");try{
props.load(in);
}catch(IOException e) {
e.printStackTrace();
logger.error("getConfig io error:", e);
}finally{if (in != null) {try{
in.close();
}catch(IOException e2) {
e2.printStackTrace();
logger.error("close io error:", e2);
}
}
}
value=props.getProperty(key);
logger.info("property info :" + key + ":" +value);
System.out.println(value);returnvalue;
}
}
四:判断你要上传的文件是不是存在
@Overridepublic booleanexistFileInOss(String fileName) {//TODO Auto-generated method stub//创建OSSClient实例
OSSClient ossClient = newOSSClient(endpoint, accessKeyId, accessKeySecret);//Object是否存在
boolean found =ossClient.doesObjectExist(bucketName, fileName);//关闭client
ossClient.shutdown();returnfound;
}
五:上传方法
@Overridepublic voiduploadFile(MultipartFile file,String fileId) {//String fileName =file.getOriginalFilename();//创建OSSClient实例
OSSClient ossClient = newOSSClient(endpoint, accessKeyId, accessKeySecret);//上传文件流
try{
ossClient.putObject(bucketName, fileId, file.getInputStream());
}catch(OSSException e) {
e.printStackTrace();
}catch(ClientException e) {
e.printStackTrace();
}catch(IOException e) {
e.printStackTrace();
}//关闭client
ossClient.shutdown();
}
六:获取文件访问地址
@OverridepublicString getFileUrl(String fileId) {//服务器端生成url签名字串
OSSClient Server = newOSSClient(endpoint, accessKeyId, accessKeySecret);
Date expiration= null;
expiration= new Date(System.currentTimeMillis()+1800000);//logger.debug("请求的fileid: " + fileId);
GeneratePresignedUrlRequest request = newGeneratePresignedUrlRequest(bucketName, fileId, HttpMethod.GET);//设置过期时间
request.setExpiration(expiration);//生成URL签名(HTTP GET请求)
URL signedUrl =Server.generatePresignedUrl(request);//logger.debug("oss文件url: " + signedUrl);
returnsignedUrl.toString();
}
七:删除文件
//删除文件//ossClient.deleteObject(bucketName, "文件的全路径,如:cia/merged.pdf");
八:控制台接收文件,调用业务层
public@ResponseBody String Upload(HttpServletRequest request, HttpServletResponse response,
BsPayBussiness bussinessm, @RequestParam("file") MultipartFile file) {
}