gpt4 book ai didi

node.js - 使用 NodeJS 从 Google Cloud Storage Bucket 下载文件夹

转载 作者:行者123 更新时间:2023-12-02 10:32:12 26 4
gpt4 key购买 nike

我需要从我的 Google 云存储中的存储桶中下载包含 NodeJS 的文件夹。我阅读了所有文档,但只找到了下载文件而不是文件夹的方法。我需要获取/下载文件夹以提供用户的下载文件。

有人可以帮助我吗?

最佳答案

正如 Doug 所说,Google Cloud Storage 会向您显示不同目录的结构,但存储桶中实际上没有文件夹。

但是,您可以在代码中执行一些解决方法来自己创建完全相同的文件夹结构。对于我想出的解决方法,您需要使用诸如 shelljs 之类的库,这将允许您在系统中创建文件夹。

关注此GCP tutorial on Cloud Storage ,您将找到有关如何列出或从存储桶下载文件等示例。

现在,将所有这些放在一起,您可以获得要下载的文件的完整路径,解析它以将文件夹与实际文件分开,然后使用方法 mkdir 来自 shelljs。

对我来说,修改教程中下载文件的方法是这样的:

var shell = require('shelljs');
[...]
async function downloadFile(bucketName, srcFilename, destFilename) {
// [START storage_download_file]
// Imports the Google Cloud client library
const {Storage} = require('@google-cloud/storage');

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

//Find last separator index
var index = srcFilename.lastIndexOf('/');
//Get the folder route as string using previous separator
var str = srcFilename.slice(0, index);
//Create recursively the folder structure in the current directory
shell.mkdir('-p', './'+str);
//Path of the downloaded file
var destPath = str+'/'+destFilename;

const options = {
destination: destPath,
};

// Downloads the file
await storage
.bucket(bucketName)
.file(srcFilename)
.download(options);

console.log(
`gs://${bucketName}/${srcFilename} downloaded to ${destPath}.`
);
// [END storage_download_file]
}

关于node.js - 使用 NodeJS 从 Google Cloud Storage Bucket 下载文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54952002/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com