2017-04-07 7 views
1

Ich möchte einen Ordner mit mehr als 100.000 Dateien (mehr als 30 GB) von meinem Remote-Server auf Google Cloud Storage hochladen. Auf dem Server, den ich habe, kann ich gsutil nicht installieren. Gibt es eine bessere Möglichkeit, die Dateien hochzuladen? Mit der API ist das so.Ordner auf Google Cloud Storage hochladen

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

Auf diese Weise schafft es viele Anfragen und ist langsam, gibt es eine andere Möglichkeit vielleicht mit PHP oder einem Programm?

+0

Sie möchten so multithreadfähig wie möglich sein. Eine Rundreise zwischen Ihnen und dem Server wird hier eine große Sache sein. Ehrlich gesagt könnte es am Ende Zeit sparen, alles in einen Tarball zu bündeln, diese eine große Datei in GCS oder eine GCE-Instanz zu bekommen, sie zu entbündeln und dann gsutil zu verwenden. –

+0

Cool, ich werde die .tar-Datei hochladen und entpacken, was wäre der Befehl zum Entpacken in Cloud Storage? Ich benutze gsutil auf meinem Computer, richtig? –

+1

Ist Ihr Server remote erreichbar? Können Sie den [Übertragungsdienst] (https://cloud.google.com/storage/transfer/) verwenden? – jterrace

Antwort

0

Move-Datei remote Server auf Google Cloud-Speicher ist weniger Zeit genommen, so dass Sie den obigen Code verwenden können.

i getestet

Verwandte Themen