尚融宝——阿里云图片上传功能(oss)

一、测试

//删除图片
    @Test
    public void e(){
        OSS oss = new OSSClientBuilder().build("oss-cn-shenzhen.aliyuncs.com","LTAI5t6Rq5vdKLrhsru5gHyn","Eqw7i14zH7m9QFQAPRdQUR4HTizrpw");
        oss.deleteObject("srb-file-lwl","b/b.jpg");
        oss.shutdown();
    }

    //添加图片
    @Test
    public void d(){
        OSS oss = new OSSClientBuilder().build("oss-cn-shenzhen.aliyuncs.com","LTAI5t6Rq5vdKLrhsru5gHyn","Eqw7i14zH7m9QFQAPRdQUR4HTizrpw");
        // 参数二:给添加的文件命名,文件夹存在直接存入,不存在就创建。
        // 参数三:放入要传的文件是哪一个
        oss.putObject("srb-file-lwl","b/b.jpg",new File("F:/b.jpg"));
        // 上传之后的文件地址
        String url = "https://srb-file-lwl.oss-cn-shenzhen.aliyuncs.com/b/b.jpg";
        oss.shutdown();
    }

二、整合到微服务

创建服务名:service-oss

依赖:

    <!--aliyunOSS-->
    <dependency>
        <groupId>com.aliyun.oss</groupId>
        <artifactId>aliyun-sdk-oss</artifactId>
    </dependency>

配置文件:

server:
  port: 8130 # 服务端口

spring:
  profiles:
    active: dev # 环境设置
  application:
    name: service-oss # 服务名

aliyun:
  oss:
    endpoint: 你的endponit
    keyId: 你的阿里云keyid
    keySecret: 你的阿里云keysecret
    bucketName: srb-file

创建工具类:

package com.atguigu.srb.oss.util;

@Data
@Component
@ConfigurationProperties(prefix = "aliyun.oss")
public class OssProperties implements InitializingBean {

    private String endpoint;
    private String keyId;
    private String keySecret;
    private String bucketName;

    public static String ENDPOINT;
    public static String KEY_ID;
    public static String KEY_SECRET;
    public static String BUCKETNAME;

    @Override
    public void afterPropertiesSet() throws Exception {
        System.out.println("当读取完所有属性后");
        System.out.println(endpoint);
        System.out.println(keyId);
        System.out.println(keySecret);
        System.out.println(keySecret);
        System.out.println("将读取到的属性赋值静态属性");
        KEY_ID = keyId;
        ENDPOINT = endpoint;
        KEY_SECRET = keySecret;
        BUCKETNAME = bucketName;
    }
}

service层:

public interface OssService {
    // 添加照片
    String uploadImage(MultipartFile multipartFile, String module);
    
    // 删除照片
    void removeImage(String url);
}
@Service
public class OssServiceImpl implements OssService {

    @Override
    public String uploadImage(MultipartFile multipartFile, String module) {

        // 上传图片文件
        OSS oss = new OSSClientBuilder().build(OssProperties.ENDPOINT,OssProperties.KEY_ID,OssProperties.KEY_SECRET);
        String fileName = UUID.randomUUID().toString();
        String originalFilename = multipartFile.getOriginalFilename();
        String filenameExtension = StringUtils.getFilenameExtension(originalFilename);
        try {
            oss.putObject(OssProperties.BUCKETNAME,module+"/"+fileName+"."+filenameExtension,multipartFile.getInputStream());
        } catch (IOException e) {
            e.printStackTrace();
        }

        // 返回图片访问url,将来提交表单存储数据库
        String url = "https://"+OssProperties.BUCKETNAME+"."+OssProperties.ENDPOINT+"/"+module+"/"+fileName+"."+filenameExtension;
        oss.shutdown();
        return url;
    }

    @Override
    public void removeImage(String url) {
        OSS oss = new OSSClientBuilder().build(OssProperties.ENDPOINT,OssProperties.KEY_ID,OssProperties.KEY_SECRET);
        String subUrl = url.substring(("https://" + OssProperties.BUCKETNAME + "." + OssProperties.ENDPOINT + "/").length());
        oss.deleteObject(OssProperties.BUCKETNAME,subUrl);
        oss.shutdown();
    }
}

controller

@Service
public class OssServiceImpl implements OssService {

    @Override
    public String uploadImage(MultipartFile multipartFile, String module) {

        // 上传图片文件
        OSS oss = new OSSClientBuilder().build(OssProperties.ENDPOINT,OssProperties.KEY_ID,OssProperties.KEY_SECRET);
        String fileName = UUID.randomUUID().toString();
        String originalFilename = multipartFile.getOriginalFilename();
        String filenameExtension = StringUtils.getFilenameExtension(originalFilename);
        try {
            oss.putObject(OssProperties.BUCKETNAME,module+"/"+fileName+"."+filenameExtension,multipartFile.getInputStream());
        } catch (IOException e) {
            e.printStackTrace();
        }

        // 返回图片访问url,将来提交表单存储数据库
        String url = "https://"+OssProperties.BUCKETNAME+"."+OssProperties.ENDPOINT+"/"+module+"/"+fileName+"."+filenameExtension;
        oss.shutdown();
        return url;
    }

    @Override
    public void removeImage(String url) {
        OSS oss = new OSSClientBuilder().build(OssProperties.ENDPOINT,OssProperties.KEY_ID,OssProperties.KEY_SECRET);
        String subUrl = url.substring(("https://" + OssProperties.BUCKETNAME + "." + OssProperties.ENDPOINT + "/").length());
        oss.deleteObject(OssProperties.BUCKETNAME,subUrl);
        oss.shutdown();
    }
}

主启动类:

@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
@ComponentScan({"com.atguigu.common","com.atguigu.srb.oss"})
public class ServiceOssApplication {
    public static void main(String[] args) {
        SpringApplication.run(ServiceOssApplication.class,args);
    }
}

三、 如何整合阿里云oss接口,实现对象数据存储功能?

A 注册登录阿里云

B 开通oss对象存储服务

C 在线测试,创建bucket,上传测试

D 创建和整合oss接口服务(service-oss)

E 测试sdk,实现接口:上传接口,和删除接口

四、测试:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值