2017-04-07 20 views
1

リモートサーバーからGoogle Cloud Storageに100,000を超えるファイル(30GB以上)を含むフォルダをアップロードしたいとします。 サーバー上で私はgsutilをインストールできません。 ファイルをアップロードするより良い方法はありますか? APIを使用すると、そのとおりです。フォルダをGoogle Cloud Storageにアップロード

$files = scanDir::scan("../../system_flex/Faturas/Media/", false, true); 

$data = array(); 
foreach ($files as $file) { 
    $arquivo = str_replace("//", "/", str_replace("../../system_flex/Faturas/", "", str_replace("\\", "/", $file))); 
    $upload = $bucket->upload(
     fopen($file, 'r'), array('name' => $arquivo) 
    ); 
} 

このように多くのリクエストを作成し、遅いですが、PHPやプログラムを使用している可能性がありますか?

+0

可能な限りマルチスレッドになりたい。あなたとサーバーとの間の往復時間はここで大したことになるでしょう。正直なところ、すべてのファイルをtarballにバンドルし、大きなファイルをGCSまたはGCEインスタンスに入れ、バンドルを解除してからgsutilを使用すると、時間が節約される可能性があります。 –

+0

クール、私は.tarファイルをアップロードして解凍します。クラウドストレージでunzipコマンドは何ですか?私はコンピュータ上でgsutilを使用します。 –

+1

サーバーはリモートからアクセスできますか? [Transfer Service](https://cloud.google.com/storage/transfer/)をご利用いただけますか? – jterrace

答えて

0

ファイルのリモートサーバーからGoogleクラウドストレージへの移動時間が短縮され、上記のコードを使用することができます。

私がテストした

関連する問題