Azure 媒体服务创建特定容器的输出资产

问题描述

我正在创建一个使用 azure 媒体服务的应用程序。所以为了管理内容,我正在尝试将资产上传到托管方式,如下所示

这是我用来创建输入资产 containerPath 之类的代码 company1/section1

private async Task<Asset> CreateInputAssetAsync(string assetName,string containerPath,IFormFile filetoUpload)
{
    var asset = await _azureMediaServicesClient.Assets.CreateOrUpdateAsync(_appSettings.AzureMediaConfig.ResourceGroup,_appSettings.AzureMediaConfig.AccountName,assetName,new Asset());

    var response = await _azureMediaServicesClient.Assets.ListContainerSasAsync(
        _appSettings.AzureMediaConfig.ResourceGroup,permissions: AssetContainerPermission.ReadWrite,expiryTime: DateTime.UtcNow.AddHours(4).ToUniversalTime());

    var sasUri = new Uri(response.AssetContainerSasUrls.First());

    var container = new BlobContainerClient(sasUri);
    var blob = container.GetBlobClient(containerPath);

    await blob.UploadAsync(filetoUpload.OpenReadStream());

    return asset;
}

所以创建输出资产代码

private async Task<Asset> CreateOutputAssetAsync(string containerPath,string assetName)
{
    var outputAsset = await _azureMediaServicesClient.Assets.GetAsync(_appSettings.AzureMediaConfig.ResourceGroup,assetName);
    var asset = new Asset { Container = containerPath };
    var outputAssetName = assetName;

    if (outputAsset != null)
    {
        var uniqueness = $"-{Guid.NewGuid():N}";
        outputAssetName += uniqueness;
    }

    return await _azureMediaServicesClient.Assets.CreateOrUpdateAsync(_appSettings.AzureMediaConfig.ResourceGroup,outputAssetName,asset);
}

但是当代码运行 azure SDK 时会抛出 BadRequest 异常

我的代码中缺少的部分是什么

问候

解决方法

更新

如果您想使用其他存储帐户,您需要在门户网站上Add secondary storage account

enter image description here

阅读 .Net SDK 后,CreateOrUpdateAsync 将创建一个新容器。所以我们只要使用现有的容器就可以解决问题。

enter image description here

测试步骤。

  1. 在门户上创建新容器 inputoutput

  2. 如下更改您的代码。

     Asset newasset= new Asset();
     newasset.Container = "input";
     newasset.StorageAccountName = "your storage name";
     Asset asset = await client.Assets.CreateOrUpdateAsync(resourceGroupName,accountName,assetName,newasset);
    

测试结果。

enter image description here

enter image description here

enter image description here