我创建了工作流,并且让它自动对A bucket里面的文件进行转码,输出到B bucket里面 现在我用代码上传了一个媒体到A bucket里面,并且得到了这个媒体的id,现在我该怎么通过接口找到这个媒体id转码后输出的文件媒体信息呢? 我尝试通过这个id获取媒体的信息,里面唯一有用的是RunIdList(媒体工作流列表)这个字段,有四个数组,似乎对应的是工作流里面的四个操作,但是这个字段是数组,我并不知道里面那个值才是转码任务的id。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在阿里云的媒体处理服务(Media Processing Service,MPS)中,当你通过工作流自动对OSS中的文件进行转码,并希望根据原始媒体ID追踪到转码后的输出文件信息时,可以通过以下步骤操作:
获取RunId: 你已经提到了RunIdList
字段,这确实是关键。每个数组元素代表了工作流中一个任务的运行ID(RunId)。通常,工作流中包含多个步骤,如转码、水印添加等,因此RunIdList
会列出所有这些步骤的运行记录。你需要确定哪个是转码任务的RunId
。
RunIdList
的第一个元素可能就是转码任务的RunId
。RunId
对应的作业详情来确认。使用GetJobInfo
接口可以获取单个作业的详细信息,包括作业类型(是否为转码作业)。使用RunId查询转码作业详情: 确定了转码任务的RunId
后,你可以调用阿里云MPS的GetJobInfo
接口,传入该RunId
来获取转码作业的详细信息,包括输出文件的位置、状态等。
GET /jobs/{JobId}
其中,{JobId}
即是你从RunIdList
中确定的转码任务的RunId
。
获取输出文件信息: 在GetJobInfo
返回的结果中,你会找到转码后文件的存储位置,通常是OSS bucket的URL或路径。这样,你就可以知道转码后的媒体文件具体存放在B bucket的哪个位置。
代码示例(假设你已知转码任务的RunId):
使用阿里云SDK(以Python为例),你可以这样获取作业详情:
from aliyunsdkcore.client import AcsClient
from aliyunsdkvod.request.v20170321 import GetJobInfoRequest
# 初始化客户端
client = AcsClient('<your-access-key-id>', '<your-access-key-secret>', '<your-region-id>')
# 创建请求对象并设置参数
request = GetJobInfoRequest.GetJobInfoRequest()
request.set_JobId('<your-run-id>') # 这里填入从RunIdList得到的转码任务ID
# 发起请求并处理响应
response = client.do_action_with_exception(request)
job_info = response.decode('utf-8')
print(job_info)
请确保替换上述代码中的<your-access-key-id>
、<your-access-key-secret>
、<your-region-id>
以及<your-run-id>
为你自己的实际值。
通过以上步骤,你应该能够定位到转码后文件的具体信息,并进一步处理或访问这些文件。