You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure Media Services API v3中使用现有Blob创建媒体资产

Azure Media Service v3 关联现有存储Blob编码方案

核心规则说明

  • v3版本不强制要求将现有Blob复制到资产专属存储容器。只要源存储账户是挂载到Media Service实例下的关联存储账户,即可直接将现有容器/Blob绑定到资产使用,大文件场景下可以完全省掉复制带来的时间和存储成本。
  • v3确实移除了v2版本的AssetFiles概念,资产实体直接映射到存储中的一个容器,容器内的块Blob会被资产自动识别,不需要单独创建文件关联实体、配置文件访问策略这些v2时代的冗余操作。
  • 如果源Blob不在Media Service关联的存储账户下,甚至不需要提前创建资产,直接给源Blob生成带读权限的SAS URI,作为HTTP输入传给编码作业即可。

具体实现步骤

  • 前置权限校验
    如果源Blob在Media Service的关联存储账户内,默认服务托管标识已经有对应容器的读写权限,不需要额外配置;如果使用用户自定义托管标识,需要给标识授予源容器的「存储Blob数据读者」「存储Blob数据参与者」RBAC角色。
  • 创建资产绑定现有容器
    调用v3 SDK创建资产时,不要走空资产+本地上传的流程,直接指定现有存储信息即可,.NET SDK示例代码如下:
    var mediaAsset = await amsClient.Assets.CreateOrUpdateAsync(
        resourceGroupName: "你的资源组名称",
        accountName: "你的Media Service账户名称",
        assetName: "自定义的资产名称",
        parameters: new Asset
        {
            StorageAccountName = "源Blob所在的存储账户名(需为AMS关联账户)",
            Container = "源Blob所在的容器名称",
            Description = "关联现有存储Blob创建的编码输入资产"
        }
    );
    
    如果不希望编码作业修改源文件,可以给资产配置只读的容器访问权限,避免误操作覆盖原媒体文件。
  • 创建编码作业指定输入文件
    配置作业输入时,直接选择上一步创建的资产,在输入配置的files参数中填入需要编码的Blob在容器内的相对路径(不需要带容器名前缀),后续按常规流程配置编码Transform、输出资产即可启动作业。
    如果是跨存储账户的场景,不需要创建资产,直接构造JobInputHttp对象,填入源Blob的只读SAS URI即可作为作业输入,全程不需要做文件传输操作。

注意事项

  • 不要直接将存储账户根容器、或者存放了大量非媒体文件的容器绑定到资产,否则服务扫描文件时会产生额外延迟,甚至因识别到不支持的文件导致作业失败,建议给待处理的媒体文件划分独立容器。
  • 绑定现有容器创建资产后,容器内的文件增删操作会自动同步到资产,不需要手动刷新资产信息。
  • 如果需要保留独立的文件副本,推荐使用存储服务端的异步Blob复制接口将源文件拷贝到资产默认容器,该操作走Azure内网传输,速度远高于本地下载重传的方式。

内容的提问来源于stack exchange,提问作者Matthieu Charbonnier

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 19:54:18