🎄说明
云对象存储实战 将运用于我的 第二个 个人项目(链接如下)
🎄准备工作
🍭登录阿里云进入对象存储服务并创建存储桶 下图是我之前创建好的
🎄使用 SDK 上传文件到阿里云对象 Bucket
🍭引入 OSS 开发依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alicloud-oss</artifactId>
<version>2.1.0.RELEASE</version>
</dependency>
🍭应用到项目的用户头像上传功能
Controller具体应用代码如下
//处理头像 如果图片不为空且路径和数据库数据不同 则需要更新图片
if (imgPath!=null && !imgPath.isEmpty()) {
if(exsitOne != null){ // 用户存在
// 如果传入的图片和原来的不一样 才需要更新图片
String originalFilename = imgPath.getOriginalFilename();
//String newName = UUID.randomUUID().toString() + "_" + System.currentTimeMillis() + originalFilename;
// 创建动态保存目录 这里我们需要指定保存文件的绝对路径
try {
/***************** 上传到本地 ****************/
imgPath.transferTo(new File(file.getAbsolutePath() + "/" + originalFilename));
/***************** 20230907 上传到阿里云oss ****************/
String endpoint = "https://oss-cn-qingdao.aliyuncs.com";
String accessKeyId = "LTAI5t7fGxeZsQWi6VKKPkfD";
String accessKeySecret = "qTXZPzgXRAD4Ite3kmFSr6zcKuan5z";
String bucketName = "bigxmeng-bucket-10000";
String objectName = originalFilename; // 上传到bucket之后的文件名
// 创建OSSClient实例。
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
// 创建PutObjectRequest对象 把本地已经存在的图片上传到阿里云
PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName, new File(file.getAbsolutePath() + "/" + originalFilename));
// 设置该属性可以返回response。如果不设置,则返回的response为空。
putObjectRequest.setProcess("true");
// 上传文件。
PutObjectResult result = ossClient.putObject(putObjectRequest);
// 如果上传成功,则返回200。
System.out.println("上传到阿里云结果:" + result.getResponse().getStatusCode());
}catch (Exception e){
System.out.println("上传图片出现问题。。。");
} finally {
if (ossClient != null) ossClient.shutdown();
}
userImgPath = JinConstant.default_imgPath + originalFilename;
}else { // 该用户不存在 则上传默认头像
userImgPath = JinConstant.default_imgPath + JinConstant.default_imgName;
imgPath.transferTo(new File(file.getAbsolutePath() + JinConstant.default_imgName));
}
}
🍭上传后运行项目测试
🍭进入个人中心页面修改个人信息
🍭修改个人信息
🍭页面呈现的HTML和呈现结果如下
🍭查看图片是否上传到阿里云oss
✨已成功上传~