如何列出所有上传到Google存储桶中存储桶的文件?

时间:2020-06-14 18:26:41

标签: node.js google-cloud-platform google-cloud-storage

我在Google云存储分区中上传了许多文件。我想对该特定存储区的所有文件的名称执行操作。 我该如何实现?

2 个答案:

答案 0 :(得分:1)

documentation显示了使用提供的节点SDK列出存储桶中所有文件的示例。您将要使用Bucket对象的getFiles()方法。

// const bucketName = 'Name of a bucket, e.g. my-bucket';

// Imports the Google Cloud client library
const {Storage} = require('@google-cloud/storage');

// Creates a client
const storage = new Storage();

async function listFiles() {
  // Lists files in the bucket
  const [files] = await storage.bucket(bucketName).getFiles();

  console.log('Files:');
  files.forEach(file => {
    console.log(file.name);
  });
}

listFiles().catch(console.error);

答案 1 :(得分:0)

以下解决方案适用于客户端。 对于每个问题的Node环境,请参考Doug Stevenson的答案

您需要使用listAll()方法来获取所有文件名。

这是官方文档中的示例

// Create a reference under which you want to list
var listRef = storageRef.child('files/uid');

// Find all the prefixes and items.
listRef.listAll().then(function(res) {
  res.prefixes.forEach(function(folderRef) {
    // All the prefixes under listRef.
    // You may call listAll() recursively on them.
  });
  res.items.forEach(function(itemRef) {
    // All the items under listRef.
  });
}).catch(function(error) {
  // Uh-oh, an error occurred!
});

我建议使用list而不是listAll方法,因为后者将所有结果存储在内存中,而前者则使用分页。

Cloud Storage Documentation