本文介紹了如何使用PHP SDK管理自訂圖庫。
功能描述
您可以自訂智能鑒黃、暴恐涉政識別、圖片或視頻廣告的圖片樣本,滿足個人化內容管控需求。關於參數的詳細資料,請參見建立圖庫API文檔。
您需要使用Alibaba Content Security Service的API接入地址,調用本SDK介面。關於API接入地址的資訊,請參見接入地址(Endpoint)。
前提條件
查詢自訂圖庫列表
您可以使用以下代碼查詢使用者圖庫列表(包括使用者自訂的圖庫列表和系統迴流圖庫):
<?php
use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
use AlibabaCloud\Green\Green;
try {
/**
* 注意:此處執行個體化的client儘可能重複使用,提升檢測效能。避免重複建立串連。
* 常見擷取環境變數方式:
* 擷取RAM使用者AccessKey ID:getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
* 擷取RAM使用者AccessKey Secret:getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
*/
AlibabaCloud::accessKeyClient('建議從環境變數中擷取RAM使用者AccessKey ID', '建議從環境變數中擷取RAM使用者AccessKey Secret')
->timeout(10) // 逾時10秒,使用該用戶端且沒有單獨設定的請求都使用此設定。
->connectTimeout(3) // 連線逾時3秒,當單位小於1,則自動轉換為毫秒,使用該用戶端且沒有單獨設定的請求都使用此設定。
->regionId('cn-shanghai')
->asDefaultClient();
$result = Green::v20170823()->describeImageLib()
->timeout(10) // 逾時10秒,request逾時設定,僅對當前請求有效。
->connectTimeout(3) // 連線逾時3秒,當單位小於1,則自動轉換為毫秒,request逾時設定,僅對當前請求有效。
->withServiceModule('open_api')
->request();
print_r($result->toArray());
} catch (ClientException $exception) {
echo $exception->getMessage() . PHP_EOL;
} catch (ServerException $exception) {
echo $exception->getMessage() . PHP_EOL;
echo $exception->getErrorCode() . PHP_EOL;
echo $exception->getRequestId() . PHP_EOL;
echo $exception->getErrorMessage() . PHP_EOL;
}
建立自訂圖庫
您可以使用以下代碼建立自訂圖庫:
請根據您所需要的業務情境設定不同的參數。
<?php
use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
use AlibabaCloud\Green\Green;
try {
/**
* 注意:此處執行個體化的client儘可能重複使用,提升檢測效能。避免重複建立串連。
* 常見擷取環境變數方式:
* 擷取RAM使用者AccessKey ID:getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
* 擷取RAM使用者AccessKey Secret:getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
*/
AlibabaCloud::accessKeyClient('建議從環境變數中擷取RAM使用者AccessKey ID', '建議從環境變數中擷取RAM使用者AccessKey Secret')
->timeout(10) // 逾時10秒,使用該用戶端且沒有單獨設定的請求都使用此設定。
->connectTimeout(3) // 連線逾時3秒,當單位小於1,則自動轉換為毫秒,使用該用戶端且沒有單獨設定的請求都使用此設定。
->regionId('cn-shanghai')
->asDefaultClient();
$result = Green::v20170823()->createImageLib()
->timeout(10) // 逾時10秒,request逾時設定,僅對當前請求有效。
->connectTimeout(3) // 連線逾時3秒,當單位小於1,則自動轉換為毫秒,request逾時設定,僅對當前請求有效。
->withServiceModule('open_api')
->withName('圖庫名稱')
->withScene('圖庫的使用情境')
->withCategory('圖庫類型')
->request();
print_r($result->toArray());
} catch (ClientException $exception) {
echo $exception->getMessage() . PHP_EOL;
} catch (ServerException $exception) {
echo $exception->getMessage() . PHP_EOL;
echo $exception->getErrorCode() . PHP_EOL;
echo $exception->getRequestId() . PHP_EOL;
echo $exception->getErrorMessage() . PHP_EOL;
}
修改自訂圖庫
您可以使用以下代碼修改自訂圖庫的名稱及其適用的業務情境(BizType):
<?php
use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
use AlibabaCloud\Green\Green;
try {
/**
* 注意:此處執行個體化的client儘可能重複使用,提升檢測效能。避免重複建立串連。
* 常見擷取環境變數方式:
* 擷取RAM使用者AccessKey ID:getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
* 擷取RAM使用者AccessKey Secret:getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
*/
AlibabaCloud::accessKeyClient('建議從環境變數中擷取RAM使用者AccessKey ID', '建議從環境變數中擷取RAM使用者AccessKey Secret')
->timeout(10) // 逾時10秒,使用該用戶端且沒有單獨設定的請求都使用此設定。
->connectTimeout(3) // 連線逾時3秒,當單位小於1,則自動轉換為毫秒,使用該用戶端且沒有單獨設定的請求都使用此設定。
->regionId('cn-shanghai')
->asDefaultClient();
$result = Green::v20170823()->updateImageLib()
->timeout(10) // 逾時10秒,request逾時設定,僅對當前請求有效。
->connectTimeout(3) // 連線逾時3秒,當單位小於1,則自動轉換為毫秒,request逾時設定,僅對當前請求有效。
->withId('圖片ID')
->withName('圖庫名稱')
->withScene('圖庫的使用情境')
->withCategory('圖庫類型')
->withBizTypes(array('業務情境1', '業務情境2'))
->request();
print_r($result->toArray());
} catch (ClientException $exception) {
echo $exception->getMessage() . PHP_EOL;
} catch (ServerException $exception) {
echo $exception->getMessage() . PHP_EOL;
echo $exception->getErrorCode() . PHP_EOL;
echo $exception->getRequestId() . PHP_EOL;
echo $exception->getErrorMessage() . PHP_EOL;
}
刪除自訂圖庫
您可以使用以下代碼刪除自訂圖庫:
刪除自訂圖庫時,圖庫下的所有圖片也將被刪除。
<?php
use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
use AlibabaCloud\Green\Green;
try {
/**
* 注意:此處執行個體化的client儘可能重複使用,提升檢測效能。避免重複建立串連。
* 常見擷取環境變數方式:
* 擷取RAM使用者AccessKey ID:getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
* 擷取RAM使用者AccessKey Secret:getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
*/
AlibabaCloud::accessKeyClient('建議從環境變數中擷取RAM使用者AccessKey ID', '建議從環境變數中擷取RAM使用者AccessKey Secret')
->timeout(10) // 逾時10秒,使用該用戶端且沒有單獨設定的請求都使用此設定。
->connectTimeout(3) // 連線逾時3秒,當單位小於1,則自動轉換為毫秒,使用該用戶端且沒有單獨設定的請求都使用此設定。
->regionId('cn-shanghai')
->asDefaultClient();
$result = Green::v20170823()->deleteImageLib()
->timeout(10) // 逾時10秒,request逾時設定,僅對當前請求有效。
->connectTimeout(3) // 連線逾時3秒,當單位小於1,則自動轉換為毫秒,request逾時設定,僅對當前請求有效。
->withId('圖庫ID')
->request();
print_r($result->toArray());
} catch (ClientException $exception) {
echo $exception->getMessage() . PHP_EOL;
} catch (ServerException $exception) {
echo $exception->getMessage() . PHP_EOL;
echo $exception->getErrorCode() . PHP_EOL;
echo $exception->getRequestId() . PHP_EOL;
echo $exception->getErrorMessage() . PHP_EOL;
}
查詢自訂圖庫圖片列表
您可以使用以下代碼查詢自訂圖庫中所有已添加的圖片列表:
<?php
use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
use AlibabaCloud\Green\Green;
try {
/**
* 注意:此處執行個體化的client儘可能重複使用,提升檢測效能。避免重複建立串連。
* 常見擷取環境變數方式:
* 擷取RAM使用者AccessKey ID:getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
* 擷取RAM使用者AccessKey Secret:getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
*/
AlibabaCloud::accessKeyClient('建議從環境變數中擷取RAM使用者AccessKey ID', '建議從環境變數中擷取RAM使用者AccessKey Secret')
->timeout(10) // 逾時10秒,使用該用戶端且沒有單獨設定的請求都使用此設定
->connectTimeout(3) // 連線逾時3秒,當單位小於1,則自動轉換為毫秒,使用該用戶端且沒有單獨設定的請求都使用此設定
->regionId('cn-shanghai')
->asDefaultClient();
$result = Green::v20170823()->describeImageFromLib()
->timeout(10) // 逾時10秒,request逾時設定,僅對當前請求有效。
->connectTimeout(3) // 連線逾時3秒,當單位小於1,則自動轉換為毫秒,request逾時設定,僅對當前請求有效。
->withImageLibId('圖庫Id')
->withPageSize('10')
->withCurrentPage('1')
->request();
print_r($result->toArray());
} catch (ClientException $exception) {
echo $exception->getMessage() . PHP_EOL;
} catch (ServerException $exception) {
echo $exception->getMessage() . PHP_EOL;
echo $exception->getErrorCode() . PHP_EOL;
echo $exception->getRequestId() . PHP_EOL;
echo $exception->getErrorMessage() . PHP_EOL;
}
刪除自訂圖片
您可以使用以下代碼刪除自訂圖庫中的多張自訂圖片:
<?php
use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
use AlibabaCloud\Green\Green;
try {
/**
* 注意:此處執行個體化的client儘可能重複使用,提升檢測效能。避免重複建立串連。
* 常見擷取環境變數方式:
* 擷取RAM使用者AccessKey ID:getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
* 擷取RAM使用者AccessKey Secret:getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
*/
AlibabaCloud::accessKeyClient('建議從環境變數中擷取RAM使用者AccessKey ID', '建議從環境變數中擷取RAM使用者AccessKey Secret')
->timeout(10) // 逾時10秒,使用該用戶端且沒有單獨設定的請求都使用此設定。
->connectTimeout(3) // 連線逾時3秒,當單位小於1,則自動轉換為毫秒,使用該用戶端且沒有單獨設定的請求都使用此設定。
->regionId('cn-shanghai')
->asDefaultClient();
// 多張圖片請使用英文逗號隔開。
$result = Green::v20170823()->deleteImageFromLib()
->timeout(10) // 逾時10秒,request逾時設定,僅對當前請求有效。
->connectTimeout(3) // 連線逾時3秒,當單位小於1,則自動轉換為毫秒,request逾時設定,僅對當前請求有效。
->withIds("['圖片ID_1','圖片ID_2']")
->request();
print_r($result->toArray());
} catch (ClientException $exception) {
echo $exception->getMessage() . PHP_EOL;
} catch (ServerException $exception) {
echo $exception->getMessage() . PHP_EOL;
echo $exception->getErrorCode() . PHP_EOL;
echo $exception->getRequestId() . PHP_EOL;
echo $exception->getErrorMessage() . PHP_EOL;
}