Azure 媒体服务定位器
Azure Media Services Locators
基于我之前的问题,我仍然没有找到定位器。
如果我创建了一个持续 1 小时的定位器,当它过期时我如何知道当前定位器已过期?
我认为我需要存储 assetId,以便稍后请求它。
- 我也存储过期日期吗?
- 或者是当我请求它时,我得到一个无效的 http 状态并基于此创建一个新的定位器?
- 所有过期的定位器怎么办,我听说你只能有 5 个,所以我需要清理过期的定位器吗?
认为主要问题是当旧定位器过期时如何创建新定位器,但我如何知道旧定位器已过期?
下面的代码是我获取定位器的代码,但无法确定定位器是否已过期。
// Try and get an access policy and reuse it if found
var tempPolicyId = from a in _context.AccessPolicies
where a.Name == PolicyName
select a;
IAccessPolicy accessPolicy = null;
if (tempPolicyId.Count() < 1)
{
accessPolicy = _context.AccessPolicies.Create(
PolicyName,
TimeSpan.FromMinutes(5), // expire in 5 minutes
AccessPermissions.List | AccessPermissions.Read);
}
else
{
accessPolicy = tempPolicyId.FirstOrDefault();
}
_context.Locators.CreateLocator(
LocatorType.OnDemandOrigin,
asset,
accessPolicy,
DateTime.UtcNow.AddMinutes(-5));
_context.Locators.CreateLocator(
LocatorType.Sas,
asset,
accessPolicy,
DateTime.UtcNow.AddMinutes(-5));
}
非常感谢您的帮助,谢谢
我强烈建议尽量少存储资产 ID。从中你可以找到关于资产的任何信息。如果您像您建议的那样使用短期定位器,那么存储到期日期也不错。我认为 1 小时是短暂的。我经常创建 10 年或 100 年的定位器,然后通过 DRM 管理访问。
要知道定位器何时过期,您可以调用 ILocator.ExpirationDateTime.ToUniversalTime() 来查找 date/time 它将会或已经过期。
当定位器过期时,如果您已达到 5 个定位器限制,则需要将其删除,然后才能添加新定位器。您也可以调用 ILocator.Update(DateTime newExpiryTime)
基于我之前的问题,我仍然没有找到定位器。
如果我创建了一个持续 1 小时的定位器,当它过期时我如何知道当前定位器已过期?
我认为我需要存储 assetId,以便稍后请求它。
- 我也存储过期日期吗?
- 或者是当我请求它时,我得到一个无效的 http 状态并基于此创建一个新的定位器?
- 所有过期的定位器怎么办,我听说你只能有 5 个,所以我需要清理过期的定位器吗?
认为主要问题是当旧定位器过期时如何创建新定位器,但我如何知道旧定位器已过期?
下面的代码是我获取定位器的代码,但无法确定定位器是否已过期。
// Try and get an access policy and reuse it if found
var tempPolicyId = from a in _context.AccessPolicies
where a.Name == PolicyName
select a;
IAccessPolicy accessPolicy = null;
if (tempPolicyId.Count() < 1)
{
accessPolicy = _context.AccessPolicies.Create(
PolicyName,
TimeSpan.FromMinutes(5), // expire in 5 minutes
AccessPermissions.List | AccessPermissions.Read);
}
else
{
accessPolicy = tempPolicyId.FirstOrDefault();
}
_context.Locators.CreateLocator(
LocatorType.OnDemandOrigin,
asset,
accessPolicy,
DateTime.UtcNow.AddMinutes(-5));
_context.Locators.CreateLocator(
LocatorType.Sas,
asset,
accessPolicy,
DateTime.UtcNow.AddMinutes(-5));
}
非常感谢您的帮助,谢谢
我强烈建议尽量少存储资产 ID。从中你可以找到关于资产的任何信息。如果您像您建议的那样使用短期定位器,那么存储到期日期也不错。我认为 1 小时是短暂的。我经常创建 10 年或 100 年的定位器,然后通过 DRM 管理访问。
要知道定位器何时过期,您可以调用 ILocator.ExpirationDateTime.ToUniversalTime() 来查找 date/time 它将会或已经过期。
当定位器过期时,如果您已达到 5 个定位器限制,则需要将其删除,然后才能添加新定位器。您也可以调用 ILocator.Update(DateTime newExpiryTime)