首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure PHP :按资产名称获取资产

Azure PHP :按资产名称获取资产
EN

Stack Overflow用户
提问于 2015-07-10 13:16:06
回答 4查看 427关注 0票数 2

是否可以使用Azure使用资产名称获取资产详细信息。我可以得到所有的资产列表,但它只加载前1000个资产。

代码语言:javascript
复制
getAssetList();

我可以使用资产id获取单个资产的详细信息。

代码语言:javascript
复制
getAsset($asset);

但在我的情况下,我身上没有资产证明。我只知道资产的名字。现在,如何使用此方法获取资产详细信息?

编辑:

我得到了Azure支持的一些帮助,他们说,我们可以使用$skip参数进行分页。我在c#中找到了代码片段

代码语言:javascript
复制
for (int i = 0; i < _context.Assets.Count(); i += 1000 )
{
    var assets = _context.Assets.Skip(i);
    foreach (IAsset objIAsset in assets)
    {
        Console.WriteLine(objIAsset.Name.ToString());
    }
}

如何在PHP中使用此param。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-07-15 01:57:55

看来不支持跳过方法。但是,我使用这个提示来监视C#跳过方法,并得到了如下所示的URL:

代码语言:javascript
复制
https://***-hs.cloudapp.net/api/Assets()?$skip=1000

因此,我认为我们可以像上面这样在PHP项目中建立请求路径,并且可以修改"MediaServicesRestProxy“文件中的MediaServicesRestProxy方法。

我将一个名为"getAssetListBySkip($number)“的函数添加到"MediaServicesRestProxy”类中,代码如下:

代码语言:javascript
复制
/**
 * Get asset list using skip number
 * 
 * */
public function getAssetListBySkip($number)
{
    $propertyList = $this->_getEntityList("Assets()?".'$skip='.$number);
    $result       = array();

    foreach ($propertyList as $properties) {
        $result[] = Asset::createFromOptions($properties);
    }

    return $result;
}

我们可以这样调用这个方法:

代码语言:javascript
复制
$mediaServiceProxy = ServicesBuilder::getInstance()->createMediaServicesService(
        new MediaServicesSettings("**","**/**="));
$result=$mediaServiceProxy->getAssetListBySkip(1000);
票数 1
EN

Stack Overflow用户

发布于 2015-07-16 19:09:27

Azure Media服务支持按名称进行过滤。您可以构造web请求如下

代码语言:javascript
复制
/api/assets()?$filter=Name%20eq%20'Your Name'&$top=1 

您还可以通过其他属性进行筛选。

票数 1
EN

Stack Overflow用户

发布于 2015-07-11 16:23:57

您是否尝试过在创建、处理、管理和传递资产时使用REST。资产,但我认为我们可以直接通过名称列出资产,因为id是资产实体的唯一标识符。PHP Azure SDK还利用assetId获取资产:

代码语言:javascript
复制
 public function getAsset($asset) 
     { 
         $assetId = Utilities::getEntityId( 
           $asset, 
             'WindowsAzure\MediaServices\Models\Asset' 
        ); 

         return Asset::createFromOptions($this->_getEntity("Assets('{$assetId}')")); 
     } 

但在我的情况下,我身上没有资产证明。我只知道资产的名字。现在,如何使用此方法获取资产详细信息?

下面是一些测试函数代码片段供您参考:

代码语言:javascript
复制
public function testListAllAssets(){ 
           // Setup 
         $asset1 = new Asset(Asset::OPTIONS_NONE); 
         $asset1->setName(TestResources::MEDIA_SERVICES_ASSET_NAME . $this->createSuffix()); 

         $asset2 = new Asset(Asset::OPTIONS_NONE); 
         $asset2->setName(TestResources::MEDIA_SERVICES_ASSET_NAME . $this->createSuffix()); 

         // Test 
         $asset1 = $this->createAsset($asset1); 
         $asset2 = $this->createAsset($asset2); 
         $result = $this->restProxy->getAssetList(); 

         // Assert 
         $this->assertCount(2, $result); 
         $names = array( 
             $result[0]->getName(), 
             $result[1]->getName() 
         ); 
         $id = array( 
                 $result[0]->getId(), 
                 $result[1]->getId() 
         ); 
         $this->assertContains($asset1->getName(), $names); 
         $this->assertContains($asset2->getName(), $names); 

         $this->assertContains($asset1->getId(), $id); 
         $this->assertContains($asset2->getId(), $id); 
     } 

 public function testGetAnAssetReference(){ 

         // Setup 
         $assetName = TestResources::MEDIA_SERVICES_ASSET_NAME . $this->createSuffix(); 
         $asset = new Asset(Asset::OPTIONS_NONE); 
         $asset->setName($assetName); 
         $asset = $this->createAsset($asset); 

         // Test 
         $result = $this->restProxy->getAsset($asset); 

         // Assert 
         $this->assertEquals($asset->getId(), $result->getId()); 
         $this->assertEquals($asset->getName(), $result->getName()); 
     } 

来自:https://github.com/Azure/azure-sdk-for-php/blob/master/tests/functional/WindowsAzure/MediaServices/MediaServicesFunctionalTest.php

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31341756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档