【问题标题】:Autodesk-forge translation failed for rvt filervt 文件的 Autodesk-forge 翻译失败
【发布时间】:2021-05-19 16:38:58
【问题描述】:

我有一个适用于 oss manager 应用程序的 rvt 文件,上传和翻译工作正常。但是我通过 CURL 调用上传了相同的文件,文件上传成功,我可以看到它在 OSS 管理器应用程序中列出,但在那里翻译失败。好像文件在上传时损坏了。

PHP 中文件上传的 CURL 调用:

$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 );

【问题讨论】:

    标签: autodesk-forge


    【解决方案1】:

    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 );
    ?>
    

    参考:Curl PHP PUT request changes file content

    【讨论】:

    • 嗨,Eason,谢谢你的回答,它解决了这个问题,现在我正在通过可恢复的端点上传一个更大的文件,但它在最后一个块上传时给出了 100 错误代码。有什么想法吗?
    • @RizwanKarim 根据我们的API doc,没有错误代码 100。你能分享更多细节吗?
    猜你喜欢
    • 2021-08-08
    • 2021-12-25
    • 2018-08-25
    • 2016-11-15
    • 2018-10-11
    • 2018-04-07
    • 2021-10-19
    • 2019-03-11
    • 2017-12-17
    相关资源
    最近更新 更多