什么原因导致使用附加Blob时发生编码错误?

问题描述

所以我的情况是,在创建输出资产时,具有BlobType:BlockBlob的Blob成功编码,但是具有AppendBlob的BlobType没有编码... 我要附加4mb的块。

  1. 创建InputAsset
    var asset = await _client.Assets.CreateOrUpdateAsync(_apiAccess.ResourceGroup,_apiAccess.AccountName,request.InputAssetName,new Microsoft.Azure.Management.Media.Models.Asset(container: request.InputAssetContainer));
    
    var response = await _client.Assets.ListContainerSasAsync(_apiAccess.ResourceGroup,permissions: AssetContainerPermission.ReadWrite,expiryTime: DateTime.UtcNow.AddHours(4).ToUniversalTime());
    
                request.InputAssetStorageUri = new Uri(response.AssetContainerSasUrls.First());
    
                await AppendBlobAsync(request);
    
                return asset;

2)AppendBlobAsync方法,实际上会附加4mb的块

 BlobServiceClient blobServiceClient = new BlobServiceClient("conn");
            BlobContainerClient containerClient = blobServiceClient.GetBlobContainerClient(request.InputAssetContainer);
            await containerClient.CreateIfNotExistsAsync();
            //There we would have stream
            var appendBlobClient = containerClient.GetAppendBlobClient(request.BlobName);
            await appendBlobClient.CreateIfNotExistsAsync();
            //await using var memoryStream = new MemoryStream();
            //await request.File.CopyToAsync(memoryStream);
            //memoryStream.Position = 0;

            var file =  File.OpenRead("C:\\Projects\\TestChunk.mp4");
            Stream stream = new MemoryStream();
            file.CopyTo(stream);
            stream.Position = 0;
            await appendBlobClient.AppendBlockAsync(stream);

3)创建输出资产

public async Task<Asset> CreateOutputAssetAsync(MediaServiceRequest request)
        => await _client.Assets.CreateOrUpdateAsync(_apiAccess.ResourceGroup,request.OutputAssetName,new Microsoft.Azure.Management.Media.Models.Asset())

4)编码

  public async Task<Job> EncodeAsync(MediaServiceRequest request)
        {
            JobInput jobInput = new JobInputAsset(assetName: request.InputAssetName);

            JobOutput[] jobOutputs =
            {
                new JobOutputAsset(request.OutputAssetName),};

            return await _client.Jobs.CreateAsync(
                _apiAccess.ResourceGroup,request.TransformerName,request.JobName,new Job
                {
                    Input = jobInput,Outputs = jobOutputs,});
        }

请帮助...

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...