周梦康 发表于 2018-09-29 450 次浏览

免费领取阿里云优惠券 我的直播 - 《PHP 进阶之路》

js 上传到 vod 的官方文档 https://help.aliyun.com/document_detail/52204.html

我们采用uploadAuth的方式来上传。

onUploadstarted 环节去自己取下uploadAuth。(其他地方都省略下)

var uploader = new AliyunUpload.Vod({
    //分片大小默认1M
    partSize: 1048576,
    //并行上传分片个数,默认5
    parallel: 5,
    //网络原因失败时,重新上传次数,默认为3
    retryCount: 3,
    //网络原因失败时,重新上传间隔时间,默认为2秒
    retryDuration: 2,
    // 开始上传
    'onUploadstarted': function (uploadInfo) {

        $.ajax({
            url: '/upload/vod',
            async: false,
            success: function (data) {
                uploader.setUploadAuthAndAddress(uploadInfo, data.UploadAuth, data.UploadAddress, data.VideoId);
            },
        })
    },
    // 文件上传成功
    'onUploadSucceed': function (uploadInfo) {

    },
    // 文件上传失败
    'onUploadFailed': function (uploadInfo, code, message) {
    },
    // 文件上传进度,单位:字节
    'onUploadProgress': function (uploadInfo, totalSize, loadedPercent) {

    },
    // 上传凭证超时
    'onUploadTokenExpired': function () {

    }
});

服务端需要指定下存储地址。重点在$request->setStorageLocation

$profile = DefaultProfile::getProfile($regionId, $accessKeyId, $accessKeySecret);
$client = new DefaultAcsClient($profile);
$request = new CreateUploadVideoRequest();
$request->setTitle("xxx");        // 视频标题(必填参数)
$request->setFileName("xxx.mp4"); // 视频源文件名称,必须包含扩展名(必填参数)
$request->setAcceptFormat('JSON');
$request->setStorageLocation("vod-yq-aliyun-com.oss-cn-shanghai.aliyuncs.com");
$client->getAcsResponse($request);

嗨,老铁,欢迎来到我的博客!

如果觉得我的内容还不错的话,可以关注下我在 segmentfault.com 上的直播。我主要从事 PHP 和 Java 方面的开发,《深入 PHP 内核》作者之一。

[视频直播] PHP 进阶之路 - 亿级 pv 网站架构的技术细节与套路 直播中我将毫无保留的分享我这六年的全部工作经验和踩坑的故事,以及会穿插着一些面试中的 考点难点加分点

评论列表