Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Azure中的定位器获取SAS(共享访问签名)?_Azure - Fatal编程技术网

如何从Azure中的定位器获取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

我正在使用Azure媒体服务。我试图通过创建一个定位器来获取SAS,然后获取它的baseURI属性。我通过这样做得到的SAS是:

但那真的是SAS吗?还是别的什么?它当然不适用于我从互联网上借用的其他需要SAS的代码。 以下是我用来获取SAS的几行代码:

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之前,您需要保持访问策略