Процент загрузки файла GSUTIL на веб-консоли из дочернего процесса

Я разрабатываю простое веб-приложение для загрузки материалов в корзину Google. Я использую метод child_process.exec для запуска команды загрузки, команда выглядит следующим образом:

child = exec(command, function (error,
stdout, stderr) {
console.log('stdout: ' + stdout);
console.log('stderr: ' + stderr);
});

command = /Users/nachiketjoshi/google-cloud-sdk/bin/bootstrapping/gsutil.py cp -r /Users/nachiketjoshi/Desktop/shell-upload-sample gs://bucket-name

Проблема, с которой я столкнулся, заключается в том, что вывод консоли в веб-приложении показывает весь статус после загрузки файла.

Я хочу видеть вывод так же, как утилита командной строки показывает при загрузке, то есть со строкой состояния, процентом и всем остальным.

В настоящее время с указанным выше child_process я вижу что-то вроде этого в консоли веб-приложения.

[2 files][ 10.0 MiB/ 30.0 MiB]  664.3 KiB/s                                   
\
\ [2 files][ 10.5 MiB/ 30.0 MiB]  585.3 KiB/s                                   
|
| [2 files][ 11.0 MiB/ 30.0 MiB]  525.7 KiB/s                                   
/
/ [2 files][ 11.6 MiB/ 30.0 MiB]  476.7 KiB/s                                   

[2 files][ 12.1 MiB/ 30.0 MiB]  439.3 KiB/s                                   
\
|
| [2 files][ 12.8 MiB/ 30.0 MiB]  511.6 KiB/s                                   
/
/ [2 files][ 13.9 MiB/ 30.0 MiB]  595.3 KiB/s                                   

[2 files][ 14.7 MiB/ 30.0 MiB]  660.8 KiB/s                                   
\
\ [2 files][ 15.2 MiB/ 30.0 MiB]  538.9 KiB/s                                   
|
/
/ [2 files][ 15.7 MiB/ 30.0 MiB]  424.6 KiB/s                                   

[2 files][ 16.2 MiB/ 30.0 MiB]  339.7 KiB/s                                   
\
\ [2 files][ 16.7 MiB/ 30.0 MiB]  408.2 KiB/s                                   
|
/
/ [2 files][ 17.2 MiB/ 30.0 MiB]  427.0 KiB/s                                   

\
\ [2 files][ 18.0 MiB/ 30.0 MiB]  415.3 KiB/s                                   
|
/
/ [2 files][ 18.5 MiB/ 30.0 MiB]  394.7 KiB/s                                   

\
\ [2 files][ 19.0 MiB/ 30.0 MiB]  403.4 KiB/s                                   
|
| [2 files][ 19.5 MiB/ 30.0 MiB]  371.9 KiB/s                                   
/
/ [2 files][ 20.3 MiB/ 30.0 MiB]  433.6 KiB/s                                   

Operation completed over 3 objects/30.0 MiB.

Что именно означает приведенный выше вывод?

Какие изменения я должен внести, чтобы я мог видеть правильный «живой вывод» на моей веб-консоли?


person Nachiket Joshi    schedule 04.12.2017    source источник


Ответы (1)


Я не уверен, что вы можете делать то, что хотите, используя gsutil (я не думаю, что вы можете зафиксировать вывод), однако этот ответ (с использованием API облачного хранилища вместо gsutil) может быть тем, что вы ищете.

person oclipa    schedule 05.12.2017
comment
Я не хочу загружать его с помощью API. Я хочу сделать это с помощью gsutil. Мое веб-приложение сначала устанавливает gsutil на клиентский компьютер, устанавливает переменные среды, авторизует учетную запись службы для корзины, а затем загружает файлы в ту же корзину. Единственное, что осталось, это статус загрузки.... - person Nachiket Joshi; 05.12.2017
comment
@NachiketJoshi Да, я понимаю, однако я сам исследовал это, и это не кажется невозможным (однако я был бы рад, если бы кто-то доказал, что я не прав). В нынешнем виде кажется, что единственный способ сообщить о статусе передачи GCS (отдельных передач) — это использовать API, а не gsutil. - person oclipa; 07.12.2017