Java实现阿里云OSS上传文件




> 第二步:在`application.properties`里配置相关环境



服务端口

server.port=8002

#服务名

spring.application.name=service_oss

#环境设置:dev test prod

spring.profiles.active=dev

#阿里云OSS

#不同的服务器,地址不同

aliyun.oss.file.endpoint=oss-cn-beijing.aliyuncs.com

aliyun.oss.file.keyid=LTAI5tCroixxjG2GbLgCVC4Y

aliyun.oss.file.keysecret=jM1gUo6w3p1SqGtHgWURXj6sTcaiCT

#bucket可以在控制台创建,也可以使用java代码创建

aliyun.oss.file.bucketname=edu-2330




> 第三步:主启动类配置



由于上传本地文件到阿里云OSS,所以不需要操作数据库,因此在主启动类需要添加相关注解



//DataSourceAutoConfiguration 由于此模块使用阿里云OSS存储文件,不需要访问数据库

//把数据源自动配置类去掉即可!防止报错!

@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)

@ComponentScan(basePackages = {“com.pdx”})

public class OssApplication {

public static void main(String[] args) {

    SpringApplication.run(OssApplication.class,args);

}

}




> 第四步:创建所需工具类



//当项目已启动,Spring接口,spring加载之后,执行接口中的一个方法

@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 ACCESS_KEY_ID;

public static String ACCESS_KEY_SECRET;

public static String BUCKET_NAME;



@Override

public void afterPropertiesSet() throws Exception {

    END_POINT = endpoint;

    ACCESS_KEY_ID = keyId;

    ACCESS_KEY_SECRET = keySecret;

    BUCKET_NAME = bucketName;

}

}




> 第五步:编写逻辑代码实现相关功能



*   **前端控制层(Controller)**



@RestController

@RequestMapping(“/eduoss/fileoss”)

@CrossOrigin //解决跨域问题

public class OssController {

@Autowired

private OssService ossService;



//上传头像的方法

@PostMapping

public R uploadOssFile(MultipartFile file){



    //获取上传的文件,MultipartFile

    //返回上传到oss的路径,最后把路径上传到数据库对应字段

    String url =  ossService.uploadFileAvatar(file);

    return R.ok().data("url",url);

}

}




*   **业务层(Service | ServiceImpl)**



public interface OssService {

//上传文件到OSS

String uploadFileAvatar(MultipartFile file);

}

@Service

public class OssServiceImpl implements OssService {

//上传文件到OSS

@Override

public String uploadFileAvatar(MultipartFile file) {



    //通过工具类来获取相应的值

    String endpoint = ConstantPropertiesUtils.END_POINT;

    String accessKeyId = ConstantPropertiesUtils.ACCESS_KEY_ID;

    String accessKeySecret = ConstantPropertiesUtils.ACCESS_KEY_SECRET;

    String bucketName = ConstantPropertiesUtils.BUCKET_NAME;



   try{



       // 创建OSSClient实例。

       OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);



       // 获取上传文件的输入流

       InputStream inputStream = file.getInputStream();



       //获取文件名称

       String filename = file.getOriginalFilename();



       //调用OSS方法实现上传

       //第一个参数 Bucket名称

       //第二个参数  上传到OSS文件路径和文件名称

       //第三个参数  上传文件输入流

       ossClient.putObject(bucketName, filename, inputStream);

最后的话

无论是哪家公司,都很重视Spring框架技术,重视基础,所以千万别小看任何知识。面试是一个双向选择的过程,不要抱着畏惧的心态去面试,不利于自己的发挥。
同时看中的应该不止薪资,还要看你是不是真的喜欢这家公司,好了希望这篇文章对大家有帮助!

部分截图:
在这里插入图片描述

件名称

       //第三个参数  上传文件输入流

       ossClient.putObject(bucketName, filename, inputStream);

最后的话

无论是哪家公司,都很重视Spring框架技术,重视基础,所以千万别小看任何知识。面试是一个双向选择的过程,不要抱着畏惧的心态去面试,不利于自己的发挥。
同时看中的应该不止薪资,还要看你是不是真的喜欢这家公司,好了希望这篇文章对大家有帮助!

部分截图:
[外链图片转存中…(img-QuoFwrPf-1714360534710)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值