Получить список папок из корзины Google Cloud Platform с помощью Node.js - PullRequest
0 голосов
/ 14 апреля 2020

Я хотел бы отобразить все папки из моего хранилища Google Cloud Storage в моем приложении Node.js, но есть только функция getFiles ().

Например, папка с именем / ab c, с двумя файлами в ней / a & / b . Я хотел бы получить только / abc / и не / abc / a & / abc / b .

приложение. js

router.get('/', async(req, res) => {
  let bucketName = 'my-bucket'

  const storage = Storage();

  const [files] = await storage.bucket(bucketName).getFiles();
  let app = [];
  for (const file of files) {
    const [metadata] = await file.getMetadata();
    app.push(metadata);
  };
  res.render('views/list.ejs', {
    apps : app, 
  });
  });

1 Ответ

1 голос
/ 14 апреля 2020

Стоит отметить, что как у S3 на AWS. GCS не имеет «каталогов», но путей.

https://cloud.google.com/storage/docs/gsutil/addlhelp/HowSubdirectoriesWork

Вы можете получить доступ к именам файлов из .name для объектов, возвращаемых из GCS. И вы можете добавить префикс к вызову .getFiles().

router.get('/', async (req, res) => {
    const bucketName = 'my-bucket'

    const storage = Storage()

    const [files] = await storage.bucket(bucketName).getFiles({ prefix: '/abc'})
    const objectNames = files.map(file => file.name)

    res.render('views/list.ejs', {
        apps: objectNames,
    })
})

...