Autodesk-forge 转换 rvt 文件失败
Autodesk-forge translation failed for rvt file
我有一个 rvt 文件,可以与 oss 管理器应用程序一起正常工作,上传和翻译工作正常。但我通过 CURL 调用上传了相同的文件,文件上传成功,我可以在 OSS 管理器应用程序中看到它的列表,但那里的翻译失败了。似乎文件在上传时损坏了。
文件上传的 CURL 调用 PHP:
$headers = array
(
'Content-Type: application/octet-stream',
'Authorization: Bearer '.$access_token,
);
$post = array(
"file" => new CurlFile( 'manual.rvt' )
);
$ch = curl_init();
curl_setopt( $ch,CURLOPT_URL, 'https://developer.api.autodesk.com/oss/v2/buckets/testriz/objects/manual.rvt' );
//curl_setopt( $ch,CURLOPT_POST, true );
curl_setopt( $ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt( $ch,CURLOPT_HTTPHEADER, $headers );
curl_setopt( $ch,CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch,CURLOPT_SSL_VERIFYPEER, false );
curl_setopt( $ch,CURLOPT_POSTFIELDS, $post);
$result = curl_exec($ch );
curl_close( $ch );
CurlFile
和$post
数组会导致错误的content-type
和文件大小。请改用 file_get_contents
。这是我的修改:
<?php
$access_token = '';
$headers = array
(
'Content-Type: application/octet-stream',
'Authorization: Bearer '.$access_token,
);
$file_realpath = './manual.rvt';
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, 'https://developer.api.autodesk.com/oss/v2/buckets/testriz/objects/manual.rvt' );
//curl_setopt( $ch,CURLOPT_POST, true );
curl_setopt( $ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
curl_setopt( $ch, CURLOPT_POSTFIELDS, file_get_contents( $file_realpath ) );
$result = curl_exec( $ch );
$http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
print_r($http_status);
print_r($result);
curl_close( $ch );
?>
参考:
我有一个 rvt 文件,可以与 oss 管理器应用程序一起正常工作,上传和翻译工作正常。但我通过 CURL 调用上传了相同的文件,文件上传成功,我可以在 OSS 管理器应用程序中看到它的列表,但那里的翻译失败了。似乎文件在上传时损坏了。
文件上传的 CURL 调用 PHP:
$headers = array
(
'Content-Type: application/octet-stream',
'Authorization: Bearer '.$access_token,
);
$post = array(
"file" => new CurlFile( 'manual.rvt' )
);
$ch = curl_init();
curl_setopt( $ch,CURLOPT_URL, 'https://developer.api.autodesk.com/oss/v2/buckets/testriz/objects/manual.rvt' );
//curl_setopt( $ch,CURLOPT_POST, true );
curl_setopt( $ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt( $ch,CURLOPT_HTTPHEADER, $headers );
curl_setopt( $ch,CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch,CURLOPT_SSL_VERIFYPEER, false );
curl_setopt( $ch,CURLOPT_POSTFIELDS, $post);
$result = curl_exec($ch );
curl_close( $ch );
CurlFile
和$post
数组会导致错误的content-type
和文件大小。请改用 file_get_contents
。这是我的修改:
<?php
$access_token = '';
$headers = array
(
'Content-Type: application/octet-stream',
'Authorization: Bearer '.$access_token,
);
$file_realpath = './manual.rvt';
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, 'https://developer.api.autodesk.com/oss/v2/buckets/testriz/objects/manual.rvt' );
//curl_setopt( $ch,CURLOPT_POST, true );
curl_setopt( $ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
curl_setopt( $ch, CURLOPT_POSTFIELDS, file_get_contents( $file_realpath ) );
$result = curl_exec( $ch );
$http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
print_r($http_status);
print_r($result);
curl_close( $ch );
?>
参考: