public static String uploadfile(MultipartFile multipartFile,String dir) {
// yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
String endpoint = "oss-cn-guangzhou.aliyuncs.com";
// 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
String accessKeyId = "LTAIdmSJshoHjl27"; //悬停在右上角账户--->点击accessKey按钮可以查看
String accessKeySecret = "Rtxydu9q2lGjMKGkIOpal0CeyTWvMW";
// 填写Bucket名称,例如examplebucket,不可以随便写,要写你在aliyun的oss存储对象里创建的名字。
String bucketName = "itbooking";
OSS ossClient = null;
try {
// 创建OSSClient实例。
ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
// 2: 获取文件上传的流
InputStream inputStream = multipartFile.getInputStream();
// 3:构建日期目录
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
String datePath = dateFormat.format(new Date());// 日期目录格式:2021/10/27
// 4: 获取文件名
String originname = multipartFile.getOriginalFilename();
String filename = UUID.randomUUID().toString();
String suffix = originname.substring(originname.lastIndexOf("."));
String newName = filename + suffix;
String fileUrl = dir+"/"+datePath + "/" + newName;
//5:文件上传到阿里云服务器
ossClient.putObject(bucketName, fileUrl, inputStream);
return "https://" + bucketName + "." + endpoint + "/" + fileUrl; //返回前端一个具体的上传路径
} catch (Exception e) {
e.printStackTrace();
return "fail";
} finally {
ossClient.shutdown(); //关闭流
}
}