如何从Azure中的定位器获取SAS(共享访问签名)?
我正在使用Azure媒体服务。我试图通过创建一个定位器来获取SAS,然后获取它的baseURI属性。我通过这样做得到的SAS是: 但那真的是SAS吗?还是别的什么?它当然不适用于我从互联网上借用的其他需要SAS的代码。 以下是我用来获取SAS的几行代码:如何从Azure中的定位器获取SAS(共享访问签名)?,azure,Azure,我正在使用Azure媒体服务。我试图通过创建一个定位器来获取SAS,然后获取它的baseURI属性。我通过这样做得到的SAS是: 但那真的是SAS吗?还是别的什么?它当然不适用于我从互联网上借用的其他需要SAS的代码。 以下是我用来获取SAS的几行代码: Public Sub OtainSAS(ByVal Filename As String) Dim mediaServicesAccountName As String = ConfigurationManager.AppSe
Public Sub OtainSAS(ByVal Filename As String)
Dim mediaServicesAccountName As String = ConfigurationManager.AppSettings("accountname")
Dim mediaServicesAccountKey As String = ConfigurationManager.AppSettings("accountkey")
Dim mediaCloud As New CloudMediaContext(mediaServicesAccountName, mediaServicesAccountKey)
Dim assetOptions As New AssetCreationOptions()
Dim asset = mediaCloud.Assets.Create(Filename, assetOptions)
Dim assetFile = asset.AssetFiles.Create(Filename)
Dim accessPolicy = mediaCloud.AccessPolicies.Create(Filename, TimeSpan.FromDays(3), AccessPermissions.Write Or AccessPermissions.List)
Dim locator As ILocator
locator = mediaCloud.Locators.CreateLocator(LocatorType.Sas, asset, accessPolicy)
gSasURL = locator.BaseUri
locator.Delete()
accessPolicy.Delete()
End Sub
谢谢。上面的链接肯定不是SAS。如果您在此处阅读Locator的文档:,您会注意到
BaseUri
定义为
提供存储/服务/容器的定位器的一部分
有关资产的信息。(例如,Dns主机名)
)
还有另一个名为ContentAccessComponent
的属性,它作为定位器的一部分返回,并包含SAS。因此,在您的代码中,您将执行以下操作:
uploadSasUrl = locator.BaseUri & 'File Name' & locator.ContentAccessComponent
基本上,您将连接BaseUri、正在上载的文件和ContentAccessComponent。一定要试一试
我还注意到,一旦获得定位器,您将删除访问策略。我认为在上传blob之前,您需要保持访问策略