全部产品
云市场

视频文件的上传文件方法

更新时间:2018-05-01 20:23:00

媒体处理的媒体资源存储在OSS中,启用状态的工作流会自动监听Bucket输入路径下新增文件的操作。因此,视频文件可以通过OSS上传,也可以通过媒体处理上传。主要包括以下几种方式:

控制台上传

OSS控制台、工具上传

  • OSS控制台提供上传文件的功能,您可以进入OSS控制台的bucket输入路径下上传媒体资源即可触发工作流执行实例。

    注意:这种方式操作简便,但是批量上传较为麻烦,不适合应用于业务系统。

    1

  • 同时,OSS提供一些官方和第三方的工具,用户可以使用这些工具向工作流的输入路径上传文件,同样可以触发工作流执行实例。工具的链接参见:osscmd工具OSS控制台客户端

媒体处理控制台上传

媒体处理控制台同样也提供了上传媒体资源的功能,用户在配置完成工作流后,将工作流状态置为启用状态即可在媒体库中对该工作流上传视频。

  1. 登录 媒体处理控制台,单击 媒体管理 > 媒体库 > 上传视频

    2

  2. 选择需要上传媒体资源对应的工作流,单击 选择工作流

    2

    选择待处理的输入视频的路径后即可下发上传请求,这里是通过OSS的分块上传方式上传数据的,因此,需要配置输入Bucket的跨域规则,其中包括媒体处理控制台的跨域请求规则。在这里触发上传请求时会自动给输入Bucket添加跨域规则,因此不需您自行设置。

    2

媒体处理SDK上传

媒体处理结合OSS的API实现了一套媒体处理使用的上传逻辑的SDK,您可以使用这套SDK直接上传媒体信息到媒体Bucket中触发工作流的执行实例。现在提供了JavaScript、Android和IOS版本的SDK。SDK使用说明和示例代码参见 使用说明上传SDK下载

注意:

  • 初始化过程支持AK/SK方式以及STS方式,其中AK/SK方式包括主账号的AK/SK和子账号的AK/SK两种方式,主账号的AK/SK拥有整个账号下资源的所有权限,因此直接添加即可。子账号的AK/SK需要保证您对媒体Bucket的对应输入路径拥有oss:PutObject权限。

  • 上传操作通过SDK的addFile方法实现,上传媒体的目录以及名称通过该方法的第四个参数定义,如果工作流设置的子目录,请注意中需要包含该相对目录,OSS目录的概念参见:OSS中的目录/文件夹概念

  • JavaScript SDK上传时将代码部署到您的站点,通过您自己的域名来操作有可能遇到跨域的问题,建议这里在输入Bucket的跨域配置中配置一条如下的跨域规则然后测试。

2

OSS API/SDK上传

如前所述,媒体处理的媒体资源存储在媒体Bucket中。因此,OSS服务本身的API/SDK的上传文件方法同样适用于媒体处理并且触发工作流执行实例。OSS服务提供了更加丰富的SDK,供不同的代码语言的调用,您可以根据业务要求进行选择,SDK列表参见 OSS SDK开发包

常见OSS服务的上传方法包括:PutObjectCopyObjectPostObjectMultipartUpload。四个方法的使用场景和优缺点如下:

  • PutObject:该方法是最基本的OSS上传方法,内网和外网均可以调用,该方法是一个PUT请求将数据传输给OSS,对上传的文件限制5GB大小。

  • CopyObject:该方法是拷贝文件的方法,如果需要将OSS上的媒体信息拷贝到工作流的输入路径,可以使用该方法。该方法仅能够通过内网传输数据,要求源端和目标端的Bucket在同一个数据中心内,并且对于拷贝文件限制1GB大小。

  • PostObject:该方法主要适用于web前端直接通过POST请求数据到OSS,而不经过用户的服务器传输。对于媒体资源等大文件不建议通过该方法上传,因为该方法对于客户端的网络质量要求较高,其方法限制请求的body不超过5GB。

  • MultipartUpload:该方法是OSS提供的分块上传方法,主要适用于大文件或者网络质量较差的场景进行使用。对于媒体处理中使用的文件通常是较大的文件,建议您通过该方法上传。该方法针对于前述的PutObject和CopyObject方法分别提供了UploadPart和UploadPartCopy来替代。该方法最大支持上传48.8TB的文件。