2017-03-03 18 views
0

私はTus.IOを使用しようとしますが、デバッグするのは複雑です。symfony2のWebサイトにPhpTusを統合

http://tus.io/

私はFPMモードでSymfony2.8/Apache2.4/PHP5.6で作られた私のウェブサイトでは、PHP-TUSサーバーを統合します。私は作曲を経由して、ベンダーのフォルダにPhpTusを展開してきました

<VirtualHost *:80> 
    ServerAdmin [email protected] 

    # DocumentRoot /var/www/hebergementbcdi_upload/web 
    Alias /upload /var/www/hebergementbcdi_upload/web 

    <Directory "/var/www/hebergementbcdi_upload/web"> 
     <IfModule mod_proxy_fcgi.c> 
     <Files ~ (\.php$)> 
      SetHandler "proxy:fcgi://127.0.0.1:9000" 
     </Files> 
     </IfModule> 

     Header set Access-Control-Allow-Origin http://10.133.169.137 
     Header set Access-Control-Allow-Headers "Authorization" 

     AllowOverride All 
     Allow from All 

     Options -Includes -ExecCGI 
    </Directory> 
</VirtualHost> 
  • :ここ

    1. は私のApacheのバーチャルホスト(私のウェブサイトのルートにないではなく、上/サブフォルダをアップロードする)です。

    2. Iは

      upload_tus_io以下などのrouting.yml設定した:私が作成した

    3. パス:/ hebergeurs/V1/upload_tus デフォルト:{uploadTusIO _controller:UploadBcdiBundle:アップロード}クライアントでこの

      * Url : /hebergeurs/V1/upload_tus 
      * 
      * @param  Symfony\Component\HttpFoundation\Request    $request      Requête http en cours. 
      * 
      * @return  Symfony\Component\HttpFoundation\Response    $response      Réponse http au format JSON 
      */ 
      public function uploadTusIOAction(Request $request) { 
      
           $upload_data_path = $this->getParameter('upload_data_path'); 
      
           // Create and configure server 
           $server = new \PhpTus\Server($upload_data_path, 
                         '/hebergeurs/V1/upload_tus', 
                         array('prefix' => 'php-tus') 
           ); 
      
           // Run server 
           $response = $server->process(true); 
      } 
      

    のようなコントローラ、私はTUS-アップロードを使う(Pythonクライアント)このように:

    TUS-アップロードDATA.zip http://10.133.169.138/upload/hebergeurs/V1/upload_tus --chunkサイズ256000認可の 'foo' で--header

    しかし、私はこのエラーをしました:

    [2017-03-03 16:50:00,551] INFO Creating file endpoint Traceback (most recent call last): File "/usr/local/bin/tus-upload", line 11, in load_entry_point('tus.py==1.2.0', 'console_scripts', 'tus-upload')() File "/usr/local/lib/python2.7/dist-packages/tus.py", line 83, in _cmd_upload metadata=args.metadata) File "/usr/local/lib/python2.7/dist-packages/tus.py", line 162, in create raise TusError("Create failed: %s" % response) tus.TusError: Create failed:

    はあなたにどんなideadを持っています。

    よろしくお願いいたします。

  • 答えて

    0

    最後に、リクエストをリダイレクトするための.htaccessファイルを作成せずに問題を解決しました。

    私はrouting.ymlでそのように処理されました:Pythonクライアントは、PHPバックエンドで動作していないため、

    # Upload with TUS.io 
    upload_tus_io: 
        path: /hebergeurs/V1/upload_tus/files/{upload_filename} 
        defaults: { _controller: UploadBcdiBundle:Upload:uploadTusIO } 
        methods: ['POST','PATCH'] 
        requirements: 
         upload_filename: "[a-z0-9]*" 
    

    は、私はPHP TUS.ioクライアントを使用しました。

    require_once __DIR__ . '/php-tus/src/PhpTus/Client.php'; 
    require_once __DIR__ . '/php-tus/src/PhpTus/Exception/Abort.php'; 
    require_once __DIR__ . '/php-tus/src/PhpTus/Exception/BadHeader.php'; 
    require_once __DIR__ . '/php-tus/src/PhpTus/Exception/Curl.php'; 
    require_once __DIR__ . '/php-tus/src/PhpTus/Exception/File.php'; 
    require_once __DIR__ . '/php-tus/src/PhpTus/Exception/Max.php'; 
    require_once __DIR__ . '/php-tus/src/PhpTus/Exception/Request.php'; 
    require_once __DIR__ . '/php-tus/src/PhpTus/Exception/Required.php'; 
    
    $filename = '/home/admin/DATA.zip'; 
    $endpoint = 'https://<my_ip>/upload/hebergeurs/V1/upload_tus/files/'; 
    
    $client = new PhpTus\Client(); 
    $client->setFilename($filename); 
    $client->setEndPoint($endpoint); 
    $client->upload(); 
    

    は、自己署名certiticatesを受け入れるようにClient.phpをハックすることを忘れないでください:私に

    // Disable SSL vérification 
    curl_setopt($handle, CURLOPT_SSL_VERIFYHOST, 0); 
    curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, 0); 
    

    感謝を。

    関連する問題