本文主要是介绍阿里oss模拟存储用户头像,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
阿里oss
模拟利用OSS存储用户头像
1、使用对象存储OSS
-
创建Bucket
-
模拟后台上传
使用java操作阿里云oss
- 创建操作阿里云oss许可证(id和密钥)
- 点击右上角头像-> accesskey管理 -> 创建AccessKey获取ID,密钥
https://help.aliyun.com/document_detail/32012.html
// 引入依赖<dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.10.2</version></dependency>
//设置properties
#阿里云oss
#不同服务器,地址不同
aliyun.oss.file.endpoint=oss-cn-beijing.aliyuncs.com
aliyun.oss.file.keyid=LTAI5tJFyFvVmK5pz1iLZNWF
aliyun.oss.file.keysecret=f5P1jlN9Jlqje4EpnHZum0Gv4tQufA
#可以在控制台创建,也可以使用java代码创建
aliyun.oss.file.bucketname=photo101
@Component
public class ConstantPropertiesUtils implements InitializingBean{// 读取配置文件内容@Value("${aliyun.oss.file.endpoint}")private String endpoint;@Value("${aliyun.oss.file.keyid}")private String keyId;@Value("${aliyun.oss.file.keysecret}")private String keySecret;@Value("${aliyun.oss.file.bucketname}")private String bucketName;// 定义公开静态常量public static String END_POINT;public static String KEY_ID;public static String KEY_SECRET;public static String BUCKET_NAME;@Overridepublic void afterPropertiesSet() throws Exception {END_POINT = endpoint;KEY_ID = keyId;KEY_SECRET = keySecret;BUCKET_NAME = bucketName;}
public class OssController {@Autowiredprivate OssService ossService;@PostMapping("/")public RespBean uploadOssFile(MultipartFile file){// 获取上传文件 MultipartFile// 返回上传到OSS的路径String url = ossService.updateloadFileAvatar(file);return RespBean.success("url",url);}
@Service
public class OssServiceImpl implements OssService {/*** 上传头像到oss* @param file* @return*/@Overridepublic String updateloadFileAvatar(MultipartFile file) {String endpoint = ConstantPropertiesUtils.END_POINT;String accessKeyId = ConstantPropertiesUtils.KEY_ID;String accessKeySecret = ConstantPropertiesUtils.KEY_SECRET;String bucketName = ConstantPropertiesUtils.BUCKET_NAME;// 创建OSSClient实例。OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);String url = "";try {// 获取流InputStream inputStream = file.getInputStream();// 获取文件名称String filename = file.getOriginalFilename();//1. 在文件名称里面添加随机的唯一的值String uuid = UUID.randomUUID().toString().replaceAll("-","");filename = uuid + filename;//2. 把文件按照日期进行分类// 2022/04/04/01.jpg// 获取当前日期String datePath = new DateTime().toString("yyyy/MM/dd");// 拼接filename = datePath+"/"+filename;// 创建PutObject请求。// 第二个参数 上传到oss文件路径和文件名称 /aa/bb/1.jpgossClient.putObject(bucketName, filename, inputStream);// 把上传之后文件路径返回// 需要把上传到阿里云oss路径手动拼接出来// https://photo101.oss-cn-beijing.aliyuncs.com/toux.webpurl = "https://"+bucketName+"."+endpoint+"/"+filename;} catch (Exception e) {e.printStackTrace();} finally {if (ossClient != null) {ossClient.shutdown();}}return url;}
}
这篇关于阿里oss模拟存储用户头像的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!