阿里云OSS视频文件迁移视频点播,并导出媒资excel表

一 介绍

1 OSS 是什么

OSS 相当于硬盘、便宜容量大,存储不经常使用的文件。
官网介绍: https://help.aliyun.com/document_detail/31817.html?spm=a2c4g.11174359.6.544.51ea1ea9aXOD2K

2 视频点播是什么

视频点播相当于存储视频文件的CND,集鉴权、播放、管理于一体的播放系统。
官网介绍: https://help.aliyun.com/document_detail/51236.html?spm=a2c4g.11186623.6.542.1b97152aQrphzw

3 制作背景

与阿里云合作,视频媒资量过于巨大,无法通过阿里云平台上传,只能通过寄OSS硬盘拷贝,然后将OSS寄回阿里,编写OSS迁移到视频点播的代码上传即可。
文档信息
阿里云磁盘(读文件)
 				读文件: https://help.aliyun.com/video_detail/39691.html?spm=5176.10695662.1996646101.searchclickresult.2f2d36b9m7F1K4
阿里云点播(写文件)
				写文件: https://help.aliyun.com/document_detail/64148.html?spm=a2c4g.11186623.6.1066.42976a58M4A9av」
阿里云sdk导入依赖
       <!-- 阿里云同步开始 -->
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-core</artifactId>
            <version>4.3.3</version>
        </dependency>
        <dependency>
            <groupId>com.aliyun.oss</groupId>
            <artifactId>aliyun-sdk-oss</artifactId>
            <version>3.1.0</version>
        </dependency>
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-vod</artifactId>
            <version>2.15.2</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.28</version>
        </dependency>
        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20170516</version>
        </dependency>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.2</version>
        </dependency>

        <dependency>
            <groupId>com.konka.util</groupId>
            <artifactId>aliyun-java-vod-upload</artifactId>
            <version>1.4.12</version>
        </dependency>

        <!-- 阿里云同步结束 -->

        <!-- excel处理 -->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.17</version>
        </dependency>

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.17</version>
        </dependency>

二 流程

1 迁移流程

在这里插入图片描述

注意:

1 确保OSS和视频点播和ECS(自己的云机器)在一个局域网内、走内网不消耗网络流量。

解释:

1 将OSS文件批量查询、并下载到本地ECS服务器
2 将本地下载好的文件上传视频点播(注意配置好转码模板、分类信息等)

三 代码实现

1 UploadVideoServiceImpl业务代码


@Slf4j
@Service
public class UploadVideoServiceImpl implements UploadVideoService {
   
   

    public final static List<Suplier> suplierlist = new ArrayList() {
   
   {
   
   
        add(new Suplier("shulang", "供应商1", 8L));
        add(new Suplier("jiaoyu", "供应商2", 19L));
        add(new Suplier("huanggang", "供应商3", 6020L));
        add(new Suplier("yang", "供应商4", 21L));

    }};

    @Override
    public void upload(ABInDTO inDTO) {
   
   

        Integer start = inDTO.getStart();
        Integer end = inDTO.getEnd();
        // 1 赛选所有
        List<OSSObjectSummary> finds = OSSUploadVideoDemo.select();
        log.info("查询总数为:{}", finds.size());

        if (start == null) {
   
   
            start = 0;
        }
        if (end == null) {
   
   
            end = finds.size();
        }
        log.info("开始和结束的数量start:{},end:{}", start, end);
        Integer count = 0;
        // 2 遍历上传到视频点播
        for (int i = 0; i < finds.size(); i++) {
   
   
            // 过滤掉
            if (start <= i && end >= i) {
   
   
                log.info("开始第:{}个-区间共:{}-{}个,总共:{}", i, start, end, finds.size());

                OSSObjectSummary s = finds.get(i);
                try {
   
   
                    // 3 上传视频点播
                    log.info("\t-----------------------start");
                    log.info("\tgetKey " + s.getKey());
                    OSSUploadVideoDemo.upload(s.getKey());
                    log.info("\t上传视频点播完毕getBucketName " + s.getBucketName());
                } catch (Exception e) {
   
   
                    log.error("上传视频点播出错了1");
                    log.info("\tgetKey " + s.getKey());
                }
                count++;
                log.info("\t-----------------------end");
            }
        }

    }

    public static void main(String[] args) throws Exception {
   
   
        OSSUploadVideoDemo.upload(null);
    }

}


2 Suplier供应商表

@Data
public class Suplier {
   
   

    // OSS文件夹名称***
    private String bucketName;

    private String nickName;    // 备注名称

    private Long CateId;    // 分类id

    public Suplier(String bucketName, String nickName, Long cateId) {
   
   
        this.bucketName = bucketName;
        this.nickName = nickName;
        CateId = cateId;
    }
}


3 OSS处理工具类OSSUploadVideoD

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值