-
配置环境变量,设置OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET
-
OSS_ACCESS_KEY_SECRET只有第一次创建AccessKey时可以看到
-
配置对象存储的(地域节点)endpoind和(仓库名称)buckentName
-
-
封装(地域节点)endpoind和(仓库名称)buckentName。
-
```java @Component @ConfigurationProperties(prefix = "sky.alioss") @Data public class AliOssProperties { private String endpoint; // private String accessKeyId; // private String accessKeySecret; private String bucketName; }
-
实现图片上传工具类
-
```java @Component //将AliOSSUtils封装到bean中 public class AliOSSUtils { @Autowired private AliOssProperties aliOssProperties; /** * 实现上传图片到OSS */ public String upload(MultipartFile file) throws Exception { String endpoint = aliOssProperties.getEndpoint(); String bucketName = aliOssProperties.getBucketName(); // 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。 EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider(); // 获取上传的文件的输入流 InputStream inputStream = file.getInputStream(); // 避免文件覆盖 //获取原始文件名 String originalFilename = file.getOriginalFilename(); //截取后缀名称 String extname = originalFilename.substring(originalFilename.lastIndexOf(".")); //用uuid品酒额后缀名 让文件名唯一 String fileName = UUID.randomUUID().toString() + extname; //上传文件到 OSS // 创建OSSClient实例。 OSS ossClient = new OSSClientBuilder().build(endpoint, credentialsProvider); // 上传文件。 ossClient.putObject(bucketName, fileName, inputStream); //文件访问路径 String url = endpoint.split("//")[0] + "//" + bucketName + "." + endpoint.split("//")[1] + "/" + fileName; // 关闭ossClient ossClient.shutdown(); return url;// 把上传到oss的路径返回 } }
-
在Controller是实现图片上传案例
-
public class CommonController { @Autowired private AliOSSUtils aliOSSUtils; /* * 文件上传 * */ @PostMapping("/upload") @ApiOperation("文件上传") public Result<String> upload(MultipartFile file) throws Exception { log.info("文件上传:{}",file); String url = aliOSSUtils.upload(file); return Result.success(url); } }
阿里云图片上传
最新推荐文章于 2024-08-09 16:37:09 发布