阿里云上传视频图片到对象存储OSS,及删除OSS文件

一.阿里云上传视频图片到对象存储OSS

jar包

		
        
           com.aliyun.oss
           aliyun-sdk-oss
           3.8.1
       

Controller

@AllArgsConstructor
@RestController
@RequestMapping("/aliyun/oss")
public class UploadOssController {

    private IUploadOssService uploadOssService;

    @ApiOperation("上传图片或视频到阿里云OSS")
    @RequestMapping("headUpload")
    public CommonResult<String> headUpload(@RequestParam("file") MultipartFile file) {
        uploadOssService.headOssUpload(file);
        return CommonResult.success("操作成功");
    }

}

Service

	@Override
    public String headOssUpload(MultipartFile file) {

        // 从工具类中获取对象
        // 区域地址:cn-hangzhou(华东1 杭州),根据自己所选区域赋值
        String endpoint = "oss-cn-hangzhou.aliyuncs.com";
        String accessKeyId = "阿里云accessKeyId";
        String accessKeySecret = "阿里云accessKeySecret";
        String bucketName = "阿里云存储对象OSS空间名";

		// 创建OSS实例
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
        try {
            
            // 获取上传文件的输入流
            InputStream inputStream = file.getInputStream();
            // 获取文件原始名称
            String filename = file.getOriginalFilename();
            // 完善1、 --> 在文件名中添加唯一值
            String uuid = UUID.randomUUID().toString().replace("-", "");
            filename = uuid + filename;
            // 完善2、 --> 把文件按照日期分类
            String datePath = new DateTime().toString("yyyy/MM/dd");
            // 拼接地址:时间 yyyy/MM/dd/filename
            filename = "douyin-xjy/material/" + datePath + "/" + filename;
            //System.out.println(filename);
            // 调用oss方法实现上传
            // 1、bucketName 2、上传到oss文件路径和文件名称 3、文件的输入流
            ossClient.putObject(bucketName, filename, inputStream);
            // 获取url地址(根据阿里云oss中的图片实例拼接字符串) 拼接url字符串
            // https://edu-leader.oss-cn-beijing.aliyuncs.com/%E4%BB%96.jpg
            String url = "https://"+bucketName+"."+endpoint+"/"+filename;
            // 关闭oss
            ossClient.shutdown();
            return url;
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
    }

二.删除对象存储OSS中的文件

	@Override
    public void delOssFile(String objectName) {
        // 从工具类中获取对象
        // 区域地址:cn-hangzhou(华东1 杭州),根据自己所选区域赋值
        String endpoint = "oss-cn-hangzhou.aliyuncs.com";
        String accessKeyId = "阿里云accessKeyId";
        String accessKeySecret = "阿里云accessKeySecret";
        String bucketName = "阿里云存储对象OSS空间名";
        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
        objectName =objectName.replaceAll("https://"+bucketName+"."+endpoint+"/", "");
        try {
            // 删除文件或目录。如果要删除目录,目录必须为空。
			/**
			* objectName指文件目录地址,例如:空间名/文件地址
			* 例如:https://douyin-xjy.oss-cn-hangzhou.aliyuncs.com/douyin-xjy/hecheng/2023/04/20/e365a31b279e421a9fd295a0441dd92f.mp4
			* douyin-xjy:为设置的阿里云存储对象OSS空间名
			* objectName = douyin-xjy/hecheng/2023/04/20/e365a31b279e421a9fd295a0441dd92f.mp4
			*/
            ossClient.deleteObject(bucketName, objectName);

            // 关闭OSSClient。
            ossClient.shutdown();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
    }

二.阿里云对象存储OSS视频获取第一帧图片

在视频地址后面拼接:?x-oss-process=video/snapshot,t_0,f_jpg,w_0,h_0,m_fast,ar_auto

你可能感兴趣的:(#,JAVA使用,阿里云,音视频,java)