java上传图片到对象存储OSS

先添加maven依赖

    <dependency>
      <groupId>com.aliyun.oss</groupId>
      <artifactId>aliyun-sdk-oss</artifactId>
      <version>3.8.0</version>
    </dependency>

java 代码

 @PostMapping("/uploadImage")
    @ResponseBody
    public String uploadImage(@RequestParam("file")MultipartFile file){
        //你的endpoint
        String endpoint="oss-cn-beijing.aliyuncs.com";
        //阿里云可以获取到
        String accesskeyId="LTAI4G2aicbuPvfjjFWbTh9v";
        //阿里云可以获取到
        String accesskeySecret="fPXEhBlEmshH3e88SXQw6p0REL1yG0";
        //桶的名称  你在运行的时候有可能会报这个桶的名称已经被使用的错误这时候只需要换个没人使用过的名称就可以了
        String buketName="dome132465";

        //这个名称是你存储到oos上的图片名称
        String fileName="sun.jpg";
        try {
            //创建上传oss客户端
            OSS ossClient= new OSSClientBuilder().build(endpoint,accesskeyId,accesskeySecret);
            InputStream inputStream = file.getInputStream();
            ObjectMetadata objectMetadata=new ObjectMetadata();
            //设置图片格式
            objectMetadata.setContentType("image/jpg");
            //创建桶
            CreateBucketRequest createBucketRequest=new CreateBucketRequest(null); //这个桶的名称可以为空后面设置
            //设置桶的名称
            createBucketRequest.setBucketName(buketName);
            //设置桶的权限。我这里设置的公共读,这样就可以通过连接访问图片
            createBucketRequest.setCannedACL(CannedAccessControlList.PublicRead);
            //将桶设置到OSS
            ossClient.createBucket(createBucketRequest);
            //上传图片至oos
            ossClient.putObject(buketName,fileName,inputStream,objectMetadata);
            //关闭连接
            ossClient.shutdown();
        } catch (IOException e) {
            e.printStackTrace();
        }
        //可以访问的图片连接
        return "https://"+buketName+"."+endpoint+"/"+fileName;

    }

然后就可以看到OSS中多了一个桶
在这里插入图片描述
点进去的文件管理就可以看到我们上传的照片

在这里插入图片描述
返回的连接为https://dome132465.oss-cn-beijing.aliyuncs.com/sun.jpg因为我对桶设置的权限为公共读所以点击就可以直接访问

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值