-
controller层
//上传图片 @PostMapping("/upload") public R upload(MultipartFile file){ String url = ossService.upload(file); return R.ok().data("url",url); }
-
service层
@Service public class OSSServiceImpl implements OSSService { @Autowired private OSSPropertry ossPropertry; @Override public String upload(MultipartFile file) { // Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。 String endpoint = ossPropertry.getEndpoint(); // 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。 String accessKeyId = ossPropertry.getKeyid(); String accessKeySecret = ossPropertry.getKeysecret(); // 填写Bucket名称,例如examplebucket。 String bucketName = ossPropertry.getBucketname(); // 创建OSSClient实例。 OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); try { InputStream inputStream = file.getInputStream(); //获取文件名字 String fileName = file.getOriginalFilename(); //UUID String s = UUID.randomUUID().toString().replaceAll("-", ""); fileName = s+fileName; //按照当前日期创建文件夹 String timeUrl = new DateTime().toString("yyyy/MM/dd"); fileName = timeUrl+"/"+timeUrl; // 创建PutObject请求。实现方法的上传 ossClient.putObject(bucketName, fileName, inputStream); //关闭连接 ossClient.shutdown(); //返回链接URL https://bosssunjie.oss-cn-beijing.aliyuncs.com/nginx.conf String url = "https://"+bucketName+"."+endpoint+"/"+fileName; return url; } catch (Exception oe) { oe.printStackTrace(); return null; } } }
-
所需依赖
aliyun-sdk-oss joda-time
-
将属性放入yml中,自动配置拿取数据