Результаты загрузки Autodesk Forge за время ожидания шлюза 504
Мы пытаемся загрузить файл через кузницу ObjectsApi в php. Это приводит к тому, что время ожидания шлюза http 504 постоянно. Файл размером 800 КБ, так что это не должно быть проблемой.
Это код:
$twoLeggedAuth = new Autodesk\Auth\OAuth2\TwoLeggedAuth();
$twoLeggedAuth->setScopes( [ 'data:write' ] );
$twoLeggedAuth->fetchToken();
$apiInstance = new Autodesk\Forge\Client\Api\ObjectsApi( $twoLeggedAuth );
$filename = $inputFileName;
$body = $filename;
$file = new SplFileObject( $body );
$content_length = $file->getSize();
$object_name = $file->getFilename();
try {
$result = $apiInstance->uploadObject( $bucket_key, $object_name, $content_length, $body, null, null );
} catch( Exception $e ) {
echo 'Exception when calling ObjectsApi->uploadObject: ', $e->getMessage(), PHP_EOL;
}
Что приводит к
Exception when calling ObjectsApi->uploadObject: [504] Error connecting to the API (https://developer.api.autodesk.com/oss/v2/buckets/bobbie_pat/objects/test.dwg)
1 ответ
В документации говорится, что код содержит ошибки. https://forge.autodesk.com/blog/basic-usage-forge-sdk-php содержит исправление:
Но есть проблема с методом uploadObject, мы столкнемся с ошибкой 504. Чтобы исправить эту проблему, существует обходной путь для изменения строки #196 forge-php-client/lib/ApiClient.php.
//From: curl_setopt( $curl, CURLOPT_POSTFIELDS, $postData ); //To: curl_setopt( $curl, CURLOPT_POSTFIELDS, file_get_contents( $postData ) );
Понятия не имею, почему они не просто исправляют свой SDK, а не публикуют исправление на своем веб-сайте.