Удалите папку в Google Cloud Storage, используя nodejs gcloud api

Я использую gcloud nodejs api получить доступ к Google Cloud Storage. Я могу сохранять / удалять / существующие файлы по отдельности, но я не нашел способа удалить папку или даже вывести список файлов в папке с помощью gcloud nodejs api,

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

Интересно, есть ли способ сделать это? Если нет, какой инструмент я должен использовать?

2 ответа

Код для перечисления файлов в каталоге должен выглядеть примерно так:

bucket.getFiles({ prefix: 'directoryName/' }, function(err, files) {})

И удалить:

bucket.deleteFiles({ prefix: 'directoryName/' }, function(err) {})

Вместо того, чтобы использовать gcloud nodejs apiЕсть два других способа сделать это.

  1. Использовать googleapis пакет для доступа к стандартному JSON API и XML API gcs. googleapis является инструментом API более низкого уровня, который включает взаимодействие с облачными сервисами Google. Мы можем создавать / перечислять / удалять файлы на gcs. Документация и примеры:

  2. использование childe_process выполнить gsutil инструмент командной строки. Это не стандартный способ программного доступа к API Google, но все же жизнеспособное решение. Wildcard допускается при вводе команды. Обратите внимание, что это может не работать на Google App Engine. Вот пример.

Nodejs

var exec = require('child_process').exec;
exec("gsutil rm gs://[bucketname]/[directory ]/*" , function(error,stdout,stderr){});

Как предложил Стивен, используя стандартные gcloud метод bucket.getFiles а также bucket.deleteFiles это самый желательный подход. Поскольку у gcs нет концепции каталогов, манипулирование несколькими файлами, очевидно, следует рассматривать как операцию на уровне сегмента.

Другие вопросы по тегам