public void upload (@RequestParam("file") MultipartFile file, String remark) {
System.out.println("执行了一次");
// 获取原始名字
String fileNameOld = file.getOriginalFilename();
// 获取后缀名
String suffixName = fileNameOld.substring(fileNameOld.lastIndexOf(".")+1);
//获取纯文件名
String onlyFileName = fileNameOld.substring(0,fileNameOld.lastIndexOf("."));
// 文件重命名,防止重复
final String OSS_ENDPOINT = "oss-cn-guangzhou.aliyuncs.com";
final String OSS_ACCESSKEY = "LTAI4GGAoCDgAvU3bsUhExyN";
final String OSS_SECRETKEY = "DDmqUoGIAazHxSGqASqIaAzoaxh6D6";
final String OSS_BUCKETNAME = "xiaojie";
String fileName = UUID.randomUUID() + "_" + fileNameOld;
OSS ossClient = new OSSClientBuilder().build(OSS_ENDPOINT,OSS_ACCESSKEY,OSS_SECRETKEY);
try {
final File tempFile = File.createTempFile(UUID.randomUUID() + "_" + onlyFileName,suffixName);
//MultipartFile 转换为 File
file.transferTo(tempFile);
//容器不存在,就创建
if(! ossClient.doesBucketExist(OSS_BUCKETNAME)){
ossClient.createBucket(OSS_BUCKETNAME);
CreateBucketRequest createBucketRequest = new CreateBucketRequest(OSS_BUCKETNAME);
createBucketRequest.setCannedACL(CannedAccessControlList.PublicRead);
ossClient.createBucket(createBucketRequest);
}
String fileUrl ="upload/"+ fileName;
PutObjectResult result = ossClient.putObject(new PutObjectRequest(OSS_BUCKETNAME, fileUrl, tempFile));
ossClient.setBucketAcl(OSS_BUCKETNAME, CannedAccessControlList.PublicRead);
if(null != result){
logger.info("==========>OSS文件上传成功,OSS地址:"+fileUrl);
}
}catch (OSSException oe){
logger.error(oe.getMessage());
}catch (ClientException ce){
logger.error(ce.getMessage());
} catch (Exception e) {
e.printStackTrace();
} finally {
//关闭
ossClient.shutdown();
}
}
文件上传的一个阿里oss的上传使用。