Как скопировать файлы из Google Compute Engine в локальный каталог

Это то, что я использую для добавления стандартного CSV в массив ...

function csv_explode($delim=',', $str, $enclose='"', $preserve=false){
        $resArr = array();
        $n = 0;
        $expEncArr = explode($enclose, $str);
        foreach($expEncArr as $EncItem){
                if($n++%2){
                        array_push($resArr, array_pop($resArr) . ($preserve?$enclose:'') . $EncItem.($preserve?$enclose:''));
                }else{
                        $expDelArr = explode($delim, $EncItem);
                        array_push($resArr, array_pop($resArr) . array_shift($expDelArr));
                        $resArr = array_merge($resArr, $expDelArr);
                }
        }
        return $resArr;
} 

Затем вы можете выводить все, что хотите, в цикле foreach.

16
задан Tuxdude 9 July 2017 в 02:18
поделиться

1 ответ

Ваша команда верна, если вы правильно указали исходный и целевой путь

Команда, которую вы отправили в своем вопросе, работает для меня при копировании файла из виртуальной машины Google Compute Engine на мой локальный компьютер.

$ gcloud compute scp vm1:~/.bashrc ~/Documents/
.bashrc                                          100% 3515     3.4KB/s   00:00

Я также попытался сделать копию с другой стороны (т.е. с моей локальной машины на виртуальную машину GCE), и она работает:

$ gcloud compute scp ~/Documents/.bashrc vm1:~/temp/
.bashrc                                          100% 3515     3.4KB/s   00:00

$ gcloud compute scp ~/Documents/.bashrc vm1:~/.bashrc-new
.bashrc                                          100% 3515     3.4KB/s   00:00

gcloud опирается на исполняемый файл scp, присутствующий в ваш PATH. Аргументы, которые вы передаете команде gcloud scp, передаются в двоичный файл scp. Предполагая, что ваши исходный и целевой путь верны, он должен работать.

Рекурсивное копирование с использованием scp

Однако, исходя из вашего конкретного сообщения об ошибке, я видел, что этот вариант появляется только тогда, когда исходный путь, из которого вы пытаетесь копировать, является каталогом, а не файлом. Для этого конкретного случая вы можете передать аргумент --recurse (аналогично аргументу -r, поддерживаемому обычным scp), который будет рекурсивно копировать все файлы и каталоги в указанном каталоге.

gcloud compute scp --recurse SRC_PATH DEST_PATH

16
ответ дан Tuxdude 9 July 2017 в 02:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: