Как программно изменить политику чтения для локатора службы мультимедиа Azure?

При добавлении локаторов к нескольким файлам, которые я загрузил в службу мультимедиа Azure, я по ошибке добавил и установил неправильное время истечения срока действия для файлов mp4. Я также сохраняю информацию для каждого загруженного файла в базе данных, включая ссылки на локатор. Есть ли способ сбросить время истечения срока действия локаторов для каждого файла, который я в настоящее время храню в службах мультимедиа, и получить новые локаторы для каждого файла?


person user1790300    schedule 01.10.2015    source источник


Ответы (1)


API создания локатора может получить locatorID в качестве параметра. Вам нужно получить существующий локатор и удалить его, а затем создать с тем же GUID, чтобы вы могли обновить дату истечения срока действия, а также сохранить тот же локатор (URL).

Вот пример, который будет хранить существующие данные локатора и создавать их заново.

private static ILocator RecreateLocator(ILocator locator, CloudMediaContext mediaContext)
        {
            // Save properties of existing locator.
            var asset = locator.Asset;
            var accessPolicy = locator.AccessPolicy;
            var locatorId = locator.Id;
            var startDate = locator.StartTime;
            var locatorType = locator.Type;
            var locatorName = locator.Name;

            // Delete old locator.
            locator.Delete();

            if (locator.ExpirationDateTime <= DateTime.UtcNow)
            {
                throw new Exception(String.Format(
                    "Cannot recreate locator Id={0} because its locator expiration time is in the past", 
                    locator.Id));
            }

            // Create new locator using saved properties.
            var newLocator = mediaContext.Locators.CreateLocator(
                locatorId,
                locatorType,
                asset,
                accessPolicy,
                startDate,
                locatorName);

            Trace.TraceInformation("Locator created. Name={0}, path={1}", newLocator.Name, newLocator.Path);

            return newLocator;
        }
person Cenkd    schedule 30.10.2015