1

我正在尝试使用 Cloudsight API(图像识别),并发现响应时间存在速度问题。他们的网站宣传 6-12 秒的响应时间,但我经常看到响应时间超过 20 秒。

我想知道这是否是 CloudSights 端的问题,而这只是响应时间,或者我的代码是否由于未优化或做不必要的工作而导致这些延迟。

以下是我的 PHP 代码,它可以正常工作,我可以上传图像并读取/显示响应。我的 HTML 代码是一个调用这个 PHP 文件的简单表单。

<?php

$filename = $_FILES['fileToUpload']['name'];
$filedata = $_FILES['fileToUpload']['tmp_name'];
$filesize = $_FILES['fileToUpload']['size'];
$filetype = $_FILES['fileToUpload']['type'];

/*$tmpfile = $_FILES['fileToUpload']['tmp_name'];
$filename = basename($_FILES['fileToUpload']['name']);*/

$ch = curl_init("https://api.cloudsightapi.com/image_requests");
//$ch = curl_init("http://requestb.in/131zwlo1");

$postFields = [
    "image_request[locale]" => "en-US",
    "image_request[language]" => "en-US",
    "image_request[image]" => "@$filedata".";filename=@$filename".";type=@$filetype"
];

curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Authorization: CloudSight [key]", "Content-Type:multipart/form-data"));

$result = curl_exec($ch);
curl_close($ch);

$result = json_decode($result, true);
$token = $result['token'];
$status = $result['status'];

sleep(3);

while($status == "not completed"){
    sleep(1);
    $cht = curl_init("http://api.cloudsightapi.com/image_responses/$token");
    curl_setopt($cht, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($cht, CURLOPT_HTTPHEADER, array("Authorization: CloudSight 6-j8FTD-h1ZtnlYgacdSEQ"));

    $result = curl_exec($cht);
    curl_close($cht);

    $result = json_decode($result, true);
    $status = $result['status'];
};

$name = $result['name'];
$reason = $result['reason'];
if($name != ""){
    echo "\nName: $name";
};

if($reason != ""){
    echo "\nReason Skipped: $reason";
};

?>
4

0 回答 0