项目引入阿里云视频点播PHP-SDK

背景:2021年乐视云的点播将停止提供服务,项目决定选择选用阿里云的视频的点播。在上线前,需要将之前的视频提前导入资源库,URLS方式拉取是比较方便的,对编辑同事来说操作简单,而且乐视云提供视频下载url,下面是对案例进行的调整

URL批量拉取上传(调整为多个视频上传)

阿里云PHP-SDK文档示例内容如下:点击地址进入

调用UploadMediaByURL接口,完成URL批量拉取上传功能。

接口参数和返回字段请参见UploadMediaByURL。调用示例如下:

/**
* URL批量拉取上传
* @param client 发送请求客户端
* @return UploadMediaByURLResponse URL批量拉取上传响应数据
*/
function uploadMediaByURL($client) {
$request = new vod\UploadMediaByURLRequest();
$url = "http://192.168.0.0/16/***.mp4";
$request->setUploadURLs($url); $uploadMetadataList = array();
$uploadMetadata = array();
$uploadMetadata["SourceUrl"] = $url;
$uploadMetadata["Title"] = "upload by url sample";
$uploadMetadataList[] = $uploadMetadata;
$request->setUploadMetadatas(json_encode($uploadMetadataList)); return $client->getAcsResponse($request);
} try {
$client = initVodClient('<AccessKeyId>', '<AccessKeySecret>'); $result = uploadMediaByURL($client);
var_dump($result);
} catch (Exception $e) {
print $e->getMessage()."\n";
}

根据阿里云VOD的api文档,点击地址进入。

对于UploadURLs这个参数的描述是:

URL中需要包括扩展名, 比如https://****.mp4中mp4为扩展名。

如果URL中不包含扩展名,可以在UploadMetadatas中传入FileExtension来指定。

如果URL中有扩展名且同时传入FileExtension,以传入的FileExtension为准。

指定支持的扩展名,请参见上传概述。

URL编码,多个地址以英文逗号(,)分隔,最多支持20个。

避免存在特殊字符导致无法上传视频,需要URL编码后再做逗号拼接。

所以我们将示例代码进行下面的调整:

/**
* URL批量拉取上传
* @param client 发送请求客户端
* @return UploadMediaByURLResponse URL批量拉取上传响应数据
*/
function uploadMediaByURL($client) {
$request = new vod\UploadMediaByURLRequest();
$urlDates = [];
$uploadMetadataList = array();
$uploadUrls = '';
foreach ($urlDates as $urlDate){
$url = urlencode($urlDate['url']);
$uploadMetadata = array();
$uploadMetadata["SourceUrl"] = $url;
$uploadMetadata["Title"] = $urlDate['video_name'];
$uploadMetadata["CateId"] = 123;
$uploadMetadata["FileExtension"] = pathinfo($url, PATHINFO_EXTENSION);
$uploadUrls .= $url.',';
$uploadMetadataList[] = $uploadMetadata;
}
$uploadUrls = rtrim($uploadUrls, ",");
$request->setUploadURLs($uploadUrls);
$request->setUploadMetadatas(json_encode($uploadMetadataList)); return $client->getAcsResponse($request);
} try {
$client = initVodClient('<AccessKeyId>', '<AccessKeySecret>'); $result = uploadMediaByURL($client,);
var_dump($result);
} catch (Exception $e) {
print $e->getMessage()."\n";
}

相信这时候你已经明白了,我自己集成的类里的方法如下,供大家再参考下:

/**
* URL批量拉取上传
* @param client 发送请求客户端
* @return UploadMediaByURLResponse URL批量拉取上传响应数据
*/
private function uploadMediaByURL($client,$urlDates) {
$request = new vod\UploadMediaByURLRequest();
$uploadMetadataList = array();
$uploadUrls = '';
foreach ($urlDates as $urlDate){
$url = urlencode($urlDate['url']);
$uploadMetadata = array();
$uploadMetadata["SourceUrl"] = $url;
$uploadMetadata["Title"] = $urlDate['video_name'];
$uploadMetadata["CateId"] = *****;
$uploadMetadata["FileExtension"] = pathinfo($url, PATHINFO_EXTENSION);
$uploadUrls .= $url.',';
$uploadMetadataList[] = $uploadMetadata;
}
$uploadUrls = rtrim($uploadUrls, ",");
$request->setUploadURLs($uploadUrls);
$request->setUploadMetadatas(json_encode($uploadMetadataList)); return $client->getAcsResponse($request);
} public function uploadMediaByURLResult($urlDates)
{
try {
$client = $this->initVodClient();
$result = $this->uploadMediaByURL($client,$urlDates); return $result;
} catch (Exception $e) {
print $e->getMessage()."\n";
}
}

欢迎大家讨论,有好的优化大家可以在评论区提出来。

阿里云视频点播之URL批量拉取上传(调整为多个视频上传)的更多相关文章

  1. 阿里云视频点播 php开发

    先购买开通阿里云的<视频点播>服务,视频点播 可以购买套餐 ,我在项目中使用的是299套餐 开发前在<用户信息管理>生成Access Key Secret,开发密钥使用 阿里云 ...

  2. 阿里云视频点播获取视频点播的video信息

    背景 因为在项目中需要使用阿里云的视频点播服务,需要获取视频点播的时长信息. 工具类 生成签名串Signature SignatureUtils.java package com.meeno.wzq. ...

  3. python 写了一个批量拉取文件进excel文档

    路径如: C:\\Users\\huaqi\\Desktop\\信息收集 “信息收集”目录下有以下子目录:[技术,客服,运营,行政] “技术”目录下有以下子文件:[小白.txt,小红.txt,小黑.t ...

  4. 如何从git上批量拉取本地当前分支的所有代码

    1 我本地有一个文件_netrc文件里面存储这git的相关信息,包括用户名和密码 你可以根据自己的git相关信息配置自己的信息 2 我当前的分支是dev,我要拉取当前分支下的所有代码,编写shell脚 ...

  5. springboot整合阿里云视频点播接口

    官方SDK文档地址: https://help.aliyun.com/document_detail/57756.html?spm=a2c4g.11186623.6.904.4e0d3bd9VbkIC ...

  6. 阿里云ESC学生服务器搭建springboot项目生产环境(Mysql+JDK)不需要上传安装包

    嗯,之前服务器被挖矿的病毒弄的登录不进去了,所以联系了阿里云客服,提交工单,最后建议重置,所以我就重置了, 嗯,学习经验,docker如果懂的不是太多,不要随便云部署,都给别人挖矿了.   Mysql ...

  7. 阿里云主机SSD实例磁盘测试及IO调度算法调整

    测试背景及环境说明 阿里云ECS 主机配置: 4C8G root@zabbix-master:~# grep -i "model name" /proc/cpuinfo model ...

  8. k8s-for批量拉取国内镜像并做tag标签

    kubeadm config images list  ##查看所需镜像 如果是1.15 或者是其他就需要改改 又或者是下面的国内的镜像地址不能用了 百度完改改就ok   #!/bin/bash im ...

  9. BitmapImage处理网络图片,例如阿里云获取的图片。异步加载到需要显示的控件上。提升速度非常明显。

    想直接把网络图片赋给控件,又要下载又要缓存,速度非常慢.不流畅. 需要进行处理,异步加载会显著提升速度.方法如下: public static BitmapImage ByteArrayToBitma ...

随机推荐

  1. 上周我面了个三年 Javaer,这几个问题都没答出来

    身为 Java Web 开发我发现很多人一些 Web 基础问题都答不上来. 上周我面试了一个三年经验的小伙子,一开始我问他 HTTP/1.HTTP/2相关的他到是能答点东西出来. 后来我问他:你知道 ...

  2. Python:利用Entrez库筛选下载PubMed文献摘要

    一个不是学生物的孩子来搞生物,当真是变成了一块废铁啊,但也是让我体会到了一把生物信息的力量. 废话不多说,开整! 任务:快速高效从PubMed上下载满足条件的文献PMID.标题(TI).摘要(AB). ...

  3. 阿里面试官:小伙子,你给我说一下Spring Bean初始化的几种常规方式吧

    前言 通过构造方法实例化通过静态工厂实例化通过实例工厂实例化通过FactoryBean实例化 RumenzA实体类 package com.rumenz; public class RumenzA { ...

  4. 标准库之time,random,sys,os

    # import time # print(time.time()) # 时间戳 # print(time.mktime(time.localtime())) # 结构化时间转换为时间戳 # prin ...

  5. LeetCode周赛#206

    1583. 统计不开心的朋友 #模拟 #暴力 题目链接 题意 有n为朋友,对每位朋友i,preference[i]包含 按亲密度从大到小 的朋友编号. 朋友们会被分为若干对,配对情况由pairs数组给 ...

  6. 推荐:国产etl调度工具Taskctl web应用版,0元永久授权

    写在前面 2020年疫情席卷全球,更是对整个市场经济造成了严重影响,年初疫情肆虐,西方世界单方面的科技.经济封锁,国际关系吃紧.....导致很多中小型企业业务链受阻,大型企业经费资金吃紧,轮班制导致公 ...

  7. 新手上路之JDK8的下载、安装与PATH环境变量的配置

    有些东西不常用总是会忘记,所以想把它写下来,方便以后自己想用的时候找得到:同时也进一步加深自己的记忆.接触JAVA的时间不长,言语或内容有不当之处,欢迎大佬们指正. 每一个学习JAVA的人都会经历的过 ...

  8. 磁盘冗余阵列之RAID5、RAID10

    RAID技术主要有以下三个基本功能: (1).通过对磁盘上的数据进行条带化,实现对数据成块存取,减少磁盘的机械寻道时间,提高了数据存取速度. (2).通过对一个阵列中的几块磁盘同时读取,减少了磁盘的机 ...

  9. FPGA 流水灯

    VerilogHDL那些事儿_建模篇(黑金FPGA开发板配套教程) 作者:akuei2 说明:参照该书将部分程序验证学习一遍 学习时间:2014年5月2号 主要收获: 1. 对FPGA有初步了解: 2 ...

  10. 在 GitHub 玩硬件——GitHub 热点速览 Vol.49

    作者:HelloGitHub-小鱼干 本周的 GitHub Trending 可以说是非常之硬核,天才少年稚晖君的 2 个硬件变装项目荣登热点榜,看完将充电宝改装为显示器的视频,搭配 HDMI-PI ...