Создание фильтра активов выбрасывает 400 Bad Request - PullRequest
0 голосов
/ 09 апреля 2019

Я пытаюсь создать фильтр для потока, в основном просто для его обрезки. Актив соответствует живому потоку, который все еще продолжается.

Это мой звонок через .net sdk (Microsoft.Azure.Management.Media, версия = 2.0.1.0), который завершается с 400 и без дополнительной информации:

                await _client.AssetFilters.CreateOrUpdateAsync(_config.ResourceGroup, _config.AccountName,
                    _assetName, filterName, new AssetFilter()
                    {
                        PresentationTimeRange = new PresentationTimeRange()
                        {
                            StartTimestamp = 100000000,
                            EndTimestamp = 150000000,
                            LiveBackoffDuration = 0,
                            Timescale = 10000000,
                            ForceEndTimestamp = false
                        },
                        Tracks = new List<FilterTrackSelection>()
                    });

Попытка сделать то же самое с помощью http-запроса завершается успешно, фильтр создается и может использоваться:

                    var uri =
                        $"https://management.azure.com/subscriptions/{_config.SubscriptionId}/resourceGroups/{_config.ResourceGroup}/providers/Microsoft.Media/mediaServices/streaming/assets/{_assetName}/assetFilters/{filterName}?api-version=2018-07-01";

                    httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Token);

                    var assetFilter = JsonConvert.SerializeObject(new AssetFilter()
                    {
                        PresentationTimeRange = new PresentationTimeRange()
                        {
                            StartTimestamp = 100000000,
                            EndTimestamp = 150000000,
                            LiveBackoffDuration = 0,
                            Timescale = 10000000,
                            ForceEndTimestamp = false
                        },
                        Tracks = new List<FilterTrackSelection>()
                    });

                    HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Put, uri);
                    request.Content = new StringContent(assetFilter, Encoding.UTF8, "application/json");

                    await httpClient.SendAsync(request);

Я отправляю один и тот же объект AssetFilter в обоих случаях, есть предложения относительно того, почему первый вызов не будет выполнен?

Любая помощь будет оценена.

Спасибо!

1 Ответ

0 голосов
/ 09 апреля 2019

.Net SDK версии 2.0.2 обновил фильтры в соответствии с https://www.nuget.org/packages/Microsoft.Azure.Management.Media/2.0.2. Я не могу воспроизвести в 2.0.2, поэтому, скорее всего, это исправлено в этом обновлении.Разница, вероятно, в том, что вызов REST просто обрабатывает его правильно.

...