美文网首页
day07-删除讲师头像

day07-删除讲师头像

作者: Summer2077 | 来源:发表于2020-08-07 22:46 被阅读0次

删除讲师头像

oss文档:https://help.aliyun.com/document_detail/84842.html?spm=a2c4g.11186623.6.846.965d2722nDrmVP

一、删除文件接口

oss微服务中实现删除文件接口

1. 查看OSS文档

  • 删除单个文件实例代码:
// Endpoint以杭州为例,其它Region请按实际情况填写。
String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
// 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
String accessKeyId = "<yourAccessKeyId>";
String accessKeySecret = "<yourAccessKeySecret>";
String bucketName = "<yourBucketName>";
String objectName = "<yourObjectName>";

// 创建OSSClient实例。
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

// 删除文件。如需删除文件夹,请将ObjectName设置为对应的文件夹名称。如果文件夹非空,则需要将文件夹下的所有object删除后才能删除该文件夹。
ossClient.deleteObject(bucketName, objectName);

// 关闭OSSClient。
ossClient.shutdown();           
在这里插入图片描述

2.FileService

 /**
     * 通过URL删除用户头像
     * @param url
     */
    void removeAvatar(String url);

3. FileServiceImpl

@Override
    public void removeAvatarById(String url) {
        //通过对象取出配置文件中的参数值
        String bucketname = ossProperties.getBucketname();
        String endpoint = ossProperties.getEndpoint();
        String keyid = ossProperties.getKeyid();
        String keysecret = ossProperties.getKeysecret();
        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, keyid, keysecret);

        // 删除文件。如需删除文件夹,请将ObjectName设置为对应的文件夹名称。如果文件夹非空,则需要将文件夹下的所有object删除后才能删除该文件夹。
        // 拿到的URL地址: https://guli-file-99.oss-cn-shanghai.aliyuncs.com/avatar/v2-5a0a06307129f8e1d5bf9ffa10e759fc_720w.jpg
        // 需要得到的objectName avatar/v2-5a0a06307129f8e1d5bf9ffa10e759fc_720w.jpg
        String host = "https://"+bucketname+"."+endpoint+"/";
        String objectName = url.substring(host.length());
        ossClient.deleteObject(bucketname, objectName);

        // 关闭OSSClient。
        ossClient.shutdown();
    }

4. FileController

 @ApiOperation(value = "删除头像")
    @GetMapping("remove")
    public R removeAvatar(@ApiParam(value = "url地址",required = true)
                              @RequestBody String url) {
       fileService.removeAvatar(url);
       return R.ok().message("删除成功");
    }

二 通过Openfeign调用

edu微服务中实现远程调用

1. 创建远程调用接口

@Service
@FeignClient("service-oss")//服务注册中心的服务名称 其实也就是远程服务的地址
public interface OssFileService {
    @GetMapping("/admin/oss/file/remove")
    R removeAvatar(@RequestBody String url);
}

2. 调用远程方法

TeacherService中增加根据讲师id删除图片的方法

接口

boolean removeAvatarById(String id);

实现

@Override
    public boolean removeAvatarById(String id) {
        Teacher teacher = baseMapper.selectById(id);
        if(teacher != null) {
            String avatar = teacher.getAvatar();
            System.out.println(avatar);
            if(!StringUtils.isEmpty(avatar)){
                //删除图片
                R r = ossFileService.removeFile(avatar);
                return r.getSuccess();
            }
        }
        return false;
    }

3. controller层

   @ApiOperation("根据ID列表删除讲师")
    @DeleteMapping("batch-remove")
    public R getByIdList(@ApiParam(value = "讲师id",required = true)
                             @RequestBody List<String> idList){
        for (String s : idList) {
            teacherService.removeAvatarById(s);
        }
        boolean b = teacherService.removeByIds(idList);
        if (b){
            return R.ok().message("删除成功");
        }else {
            return R.error().message("数据不存在");
        }
    }

调用链

在这里插入图片描述

三 修改前端

前端src/request.js修改超时时间

// 创建axios实例
const service = axios.create({
  baseURL: process.env.BASE_API, // api 的 base_url
  timeout: 12000 // 请求超时时间
})

此业务属于长流程业务,前端访问edu需要5秒左右,edu访问oos需要5秒左右,Oss访问阿里云需要5秒左右。

所以我们将前端访问超时时长加长点。

相关文章

  • day07-删除讲师头像

    删除讲师头像 oss文档:https://help.aliyun.com/document_detail/8484...

  • day07-作业

    day07-作业 学生信息管理系统

  • 电脑故障排除

    1.用CMD命令删除或是强行删除文件2.Win8.1用户头像设置后删除的方法3.清除Win8.1用户头像使用过的缩...

  • 不换头像就删除

    真的是朋友圈子大,什么鸟都有,有个人跑来和我说把头像换了,怕他老婆看见。我很莫名其妙,头像能说明什么?再说也没啥交...

  • 【产品有感】魔漫相机

    1.删除 怎么找不到把自己做得素材删除得按钮呢?为什么不能彻底删除头像,感觉用户体验不好。 2.交互 运用滑动来自...

  • 第79日

    我终于取消了星标 也把好友请求里你的头像删除

  • Cocos Creator游戏开发中的高级UI实现

    一、 圆形头像制作-Mask应用 拖动头像图片素材avator1到Canvas上,修改为avator,删除此节点上...

  • 【来画学院】零基础手绘超酷头像

    还需要花钱请人帮你画头像吗? 不存在的!!! 来画学院请了张贝讲师, 一步一步教你如何手绘超酷的头像。 【工具】 ...

  • 端银微信成交社+郭午阳+《朋友圈》+第2次作业:微信头像

    有了第一次作业的基本定位后,基本确定了减重塑形的方向,塑造个人IP,打造讲师的形象 头像方面,感觉用卡通的头像更有...

  • 你最爱的头像是什么?

    《图片来源于网络、如有侵权,联系白一子删除》 今天小编跟大家聊聊头像这个话题 我们选择的头像往往表达了我们的心境 ...

网友评论

      本文标题:day07-删除讲师头像

      本文链接:https://www.haomeiwen.com/subject/osxcdktx.html