You need to enable JavaScript to run this app.
导航

媒资上传

最近更新时间2023.02.10 17:51:18

首次发布时间2021.12.24 17:37:21

本文为您提供了服务端 Node.js SDK 媒资上传模块相关的 API 调用示例。主要包含:媒资上传、素材上传、URL 批量拉取上传、查询 URL 上传任务状态等。

注意事项

媒资上传模块的获取上传地址和凭证确认上传的 OpenAPI,目前支持 2 个版本。

  • OpenAPI 的版本号为 2022-01-01

说明

上传文件时,要求携带文件后缀。例如,mp4 文件上传,携带 .mp4 或 .MP4。

  • OpenAPI 的版本号为 2020-08-01

初始化

设置 AK/SK 和地域,具体可参考初始化

签发 UploadAuthToken

由 App/Web Server 持有的 AK/SK 在本地签出,不依赖外网。若希望同时生成多个UploadAuthToken,您可以循环调用生成方法。UploadAuthToken用于客户端上传,请参考客户端上传

// 可设置临时密钥过期时间(单位为毫秒),默认为 1h。
vodOpenapiService.GetUploadToken();
// 如下示例设置临时上传凭证过期时间为 30min。
vodOpenapiService.GetUploadToken(30 * 60 * 1000);

说明

由于 AK/SK 信息存放在客户端有泄漏风险,在客户端上传的过程中,通常需要服务端配合生成上传签名或凭证,下发给客户端。

媒资上传

接口请求参数和返回参数详见 OpenAPI:获取上传地址和凭证 及 确认上传

const uploadMedia = async () => {
  try {
    const options = {
      SpaceName: "your target space name", // 空间名
      FilePath: "your file path", // 绝对路径
      FileName: "your target storage path", // 文件路径(可选)。最大不超过 2048 字节。您可根据业务需求自定义文件路径。设置 FileName, 当 FileName 相同时,有文件覆盖的风险;需要保证 FileName 不同。
      FileExtension: "your file extension", // 文件后缀(可选)。以.开头,不超过 8 位。当您传入 FileExtension 时,不需要重复传入FileName 参数,视频点播将生成 32 位随机字符串,和您传入的 FileExtension 共同拼接成文件路径。
      Functions: JSON.stringify([
        { Name: "GetMeta" },
        {
          Name: "Snapshot",
          Input: {
            SnapshotTime: 2.3,
          },
        },
      ]),
      CallbackArgs: "your callbackArgs"
    };
    const res = await vodOpenapiService.UploadMedia(options);
    // do your work
    // ...
  } catch (err) {
    console.log(err);
  }
};
        

素材上传

接口请求参数和返回参数详见 OpenAPI:获取上传地址和凭证 及 确认上传

const uploadMaterial = async () => {
  try {
    const options = {
      SpaceName: "your target space name", // 空间名
      FilePath: "your local file path", // 目标文件的绝对路径
      FileName: "your target storage path", // 文件路径(可选)。最大不超过 2048 字节。您可根据业务需求自定义文件路径。设置 FileName, 当 FileName 相同时,有文件覆盖的风险;需要保证 FileName 不同。
      FileExtension: "your file extension", // 文件后缀(可选)。以 . 开头,不超过 8 位。当您传入 FileExtension 时,不需要重复传入 FileName 参数,视频点播将生成 32 位随机字符串,和您传入的 FileExtension 共同拼接成文件路径。
      FileType: "your file type",
      Functions: JSON.stringify([
        { Name: "GetMeta" },
        {
          Name: "AddOptionInfo",
          Input: {
            Title: "素材测试名称",
            Tags: "test",
            Description: "素材测试,视频文件",
            Category: "video",
            Format: "MP4",
            RecordType: 2,
          },
        },
      ]),
      CallbackArgs: "your callbackArgs"
    };
    const res = await vodOpenapiService.UploadMaterial(options);
    // do your work
    // ...
  } catch (err) {
    console.log(err);
  }
};
        

URL 批量拉取上传

接口请求参数和返回参数详见 OpenAPI:URL批量拉取上传

const uploadMediaByUrl = async () => {
  try {
    const options = {
      SpaceName: "your space name",
      URLSets: [
        {
          SourceUrl: "http://demourl/test1.mp4",
          FileName: "movie/test1.mp4", // 文件路径(可选)。最大不超过 2048 字节。您可根据业务需求自定义文件路径。设置 FileName, 当 FileName 相同时,有文件覆盖的风险;需要保证 FileName 不同。
          FileExtension: ".mp4", // 文件后缀(可选)。以 . 开头,不超过 8 位。当您传入 FileExtension 时,不需要重复传入 FileName 参数,视频点播将生成 32 位随机字符串,和您传入的 FileExtension 共同拼接成文件路径。
        },
        {
          SourceUrl: "http://demourl/test2.mp4",
          FileName: "cartoon/test1.mp4",
        },
      ],
    };
    const res = await vodOpenapiService.UploadMediaByUrl(options);
    // do your work
    // ...
  } catch (err) {
    console.log(err);
  }
};

查询 URL 批量上传任务状态

接口请求参数和返回参数详见 OpenAPI:查询 URL 批量上传任务状态

const queryUploadTaskInfo = async () => {
  try {
    const options = { JobIds: "your job ids" };
    const res = await vodOpenapiService.QueryUploadTaskInfo(options);
    // do your work
    // ...
  } catch (err) {
    console.log(err);
  }
};