是否可以使用Azure使用资产名称获取资产详细信息。我可以得到所有的资产列表,但它只加载前1000个资产。
getAssetList();我可以使用资产id获取单个资产的详细信息。
getAsset($asset);但在我的情况下,我身上没有资产证明。我只知道资产的名字。现在,如何使用此方法获取资产详细信息?
编辑:
我得到了Azure支持的一些帮助,他们说,我们可以使用$skip参数进行分页。我在c#中找到了代码片段
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。
发布于 2015-07-15 01:57:55
看来不支持跳过方法。但是,我使用这个提示来监视C#跳过方法,并得到了如下所示的URL:
https://***-hs.cloudapp.net/api/Assets()?$skip=1000因此,我认为我们可以像上面这样在PHP项目中建立请求路径,并且可以修改"MediaServicesRestProxy“文件中的MediaServicesRestProxy方法。
我将一个名为"getAssetListBySkip($number)“的函数添加到"MediaServicesRestProxy”类中,代码如下:
/**
* 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;
}我们可以这样调用这个方法:
$mediaServiceProxy = ServicesBuilder::getInstance()->createMediaServicesService(
new MediaServicesSettings("**","**/**="));
$result=$mediaServiceProxy->getAssetListBySkip(1000);发布于 2015-07-16 19:09:27
Azure Media服务支持按名称进行过滤。您可以构造web请求如下
/api/assets()?$filter=Name%20eq%20'Your Name'&$top=1 您还可以通过其他属性进行筛选。
发布于 2015-07-11 16:23:57
您是否尝试过在创建、处理、管理和传递资产时使用REST。资产,但我认为我们可以直接通过名称列出资产,因为id是资产实体的唯一标识符。PHP Azure SDK还利用assetId获取资产:
public function getAsset($asset)
{
$assetId = Utilities::getEntityId(
$asset,
'WindowsAzure\MediaServices\Models\Asset'
);
return Asset::createFromOptions($this->_getEntity("Assets('{$assetId}')"));
} 但在我的情况下,我身上没有资产证明。我只知道资产的名字。现在,如何使用此方法获取资产详细信息?
下面是一些测试函数代码片段供您参考:
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://stackoverflow.com/questions/31341756
复制相似问题