OSS快速搭建!


一、创建OSS

打开阿里云 开通OSS服务,充值几块钱。

1.创建Backet在这里插入图片描述

Backet设置跨域:
然后加入Backet打开跨域设置
在这里插入图片描述
就好了

2.查看Backet验证信息

(1).Endpoint(地域节点):

在这里插入图片描述

(2).accessKeyId和accessKeySecret:

他们像是账号密码
获取方式:

  1. 前往RAM控制台

  2. 添加用户
    在这里插入图片描述
    在这里插入图片描述

  3. 点击添加权限:
    在这里插入图片描述

  4. 进入用户管理:
    在这里插入图片描述

  5. 创建AccessKey:
    在这里插入图片描述
    参加成功后就可以看到accessKeyId和accessKeySecret了

3.bucket就是创建的名字

二、Java中使用OSS

    // Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。
    @Value("${oss.endpoint}")
    private String endpoint;

    // 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
    @Value("${oss.accessKeyId}")
    private String accessKeyId;
    @Value("${oss.accessKeySecret}")
    private String accessKeySecret;

    // 填写Bucket名称,容器分组
    @Value("${oss.bucketName}")
    private String bucketName;

    public ApiResult<List<Map>> ossUpdate(MultipartFile[] multipartFiles, String dir) {
        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
        // 默认文件夹
        if (StrUtil.isBlank(dir)){
            dir = "home";
        }
        try {
            List<Map> list =new ArrayList<>();
            for(MultipartFile multipartFile : multipartFiles){
                // 文件流
                InputStream inputStream = multipartFile.getInputStream();
                // 设置该属性可以返回response。如果不设置,则返回的response为空。
                SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
                String datePath = dateFormat.format(new Date());// 日期目录:2021/10/27

                // 获取文件全名
                String fileName = multipartFile.getOriginalFilename();
                // 获取文件后缀名
                String Postfix = fileName.substring(fileName.lastIndexOf("."));

                // 构建目录结构
                String uuid= UUID.randomUUID().toString();  // uuid替代文件名
                // 文件在oss中的储存路径
                String filePath = dir+"/"+datePath+"/"+uuid+Postfix;

                /** 上传文件
                 * bucketName 储存区块
                 * filePath oss中储存地址
                 * inputStream 被储存文件的文件流
                 */
                ossClient.putObject(bucketName,filePath, inputStream);
                // 上传后的请求地址
                String url ="https://"+bucketName+"."+endpoint+"/"+filePath;
                Map<String,Object> map=new HashMap<>();
                map.put("url",url);               // 请求地址
                map.put("filePath",filePath);     // oss文件存储地址
                map.put("date",datePath);         // 存储时间
                map.put("fileName",fileName);     // 上传文件原名
                map.put("postfix",Postfix);       // 文件后缀
                list.add(map);
            }
            return ApiResult.ok(list);
        } catch (OSSException oe) {
            System.out.println("失败1");
        } catch (ClientException ce) {
            System.out.println("失败2");
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
        return null;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值