文件上传之oss服务器上传文件简笔
阿里云的oss服务器存储文件:
1.在yml配置文件中配置:阿里云oss存储配置信息
1 oss: 2 endpoint: oss-cn-xxxxxxxx.aliyuncs.com 3 accessKey: LTA.... 4 accessKeySecret: LD..... 5 bucketName: xxxxxx6 staticDomain: ??
2.在配置类中读取yml里面的配置信息i
@Configuration public class OssBootConfiguration { @Value("${oss.endpoint}") private String endpoint; @Value("${oss.accessKey}") private String accessKeyId; @Value("${oss.accessKeySecret}") private String accessKeySecret; @Value("${oss.bucketName}") private String bucketName; @Value("${oss.staticDomain}") private String staticDomain; @Bean public void initOssBootConfiguration() { OssBootUtil.setEndPoint(endpoint); OssBootUtil.setAccessKeyId(accessKeyId); OssBootUtil.setAccessKeySecret(accessKeySecret); OssBootUtil.setBucketName(bucketName); OssBootUtil.setStaticDomain(staticDomain); } }
3.初始化oss
private static OSSClient initOSS(String endpoint, String accessKeyId, String accessKeySecret) { if (ossClient == null) { ossClient = new OSSClient(endpoint, new DefaultCredentialProvider(accessKeyId, accessKeySecret), new ClientConfiguration()); } return ossClient; }
4.上传:
//初始化oss客户端
initOSS(endPoint, accessKeyId, accessKeySecret); StringBuilder fileUrl = new StringBuilder(); try { //对象锁 // synchronized (file) { //后缀前的数据 String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf('.')); //拼接文件绝对路径 String fileUrl = fileUrl.append(fileDir + fileName); PutObjectResult result = ossClient.putObject(bucketName, fileUrl, file.getInputStream()); // 设置权限(公开读) ossClient.setBucketAcl(bucketName, CannedAccessControlList.PublicRead); if (result != null) { System.out.println("------OSS文件上传成功------" + fileUrl); } // } } catch (IOException e) { e.printStackTrace(); return null; }
5.注意点:
考虑到是一个公共上传,若是并发调用考虑加对象锁,总体来说,要有oss服务器,先初始化oss客户端 然后生成文件路径进行上传
6.删除文件服务器上的指定目录下文件:
//初始化容器 initOSS(endPoint, accessKeyId, accessKeySecret); //删除路径 String url = url; log.info("删除文件服务器上的文件路径为:{}",url); //删除文件服务器上的文件 ossClient.deleteObject(bucketName, url);
7.检查是否上传成功 可以下载oss可视化工具 登录上去可以查看 上传 删除 复制文件路径等。为所欲为的人为操作
8.补充:
官网文档:https://help.aliyun.com/document_detail/84781.html?spm=a2c4g.11186623.6.707.5a0c1bd4CT02Ig
pom文件引用: