首页 > 解决方案 > 通过转换文件缓冲区将文件上传到谷歌云

问题描述

我正在尝试通过接受缓冲区并使用该save功能将文件上传到谷歌云。但是,我的问题是我的文件没有以正确的格式上传到谷歌云。它们被上传,但是当我尝试下载文件时,它们都是缓冲区的 .txt 文件。

我不确定我应该在这里做什么。任何帮助将不胜感激!

上传.ts

const upload = async (fileBuffer: any, filePath: string, fileName: string) => {
    const file = bucket.file(path.join(filePath, fileName));
    file.save(fileBuffer, (err: any) => {
        if (err) {
            console.log(err);
        }
    });
}

存储.ts

imageSender: async(req: Request, res: Response) => {
    try {
        const buffer = "";

        await upload(buffer, "folder", "file");

        res.status(200).send("The file was successfully uploaded.");

    } catch (err) {
        res.status(500).send(httpError(500, "Could not upload the file."));
    }
},

标签: javascripttypescriptexpressgoogle-cloud-platform

解决方案


原来我实际上是在接收一个 base64 字符串而不是一个缓冲区,所以我只是添加了const buffer = Buffer.from(base64, 'base64');. 在那之后它完美地工作了!


推荐阅读