无法将文件上传到Google云存储

时间:2020-01-09 18:35:28

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

我在尝试将文件上传到Google Cloud Storage时遇到问题。我收到错误ENOENT: no such file or directory, stat 'file.extension'。我当前的实现如下所示:

const { Storage } = require('@google-cloud/storage');

const storage = new Storage();
const bucketName = 'bucket-name';

exports.uploadFileGCP = async (file, anchorID) => {
    const { filename, mimetype, encoding, createReadStream } = await file
    await storage.bucket(bucketName).upload(filename, {
        destination: `anchor/${anchorID}/` + filename,
        predefinedAcl: 'publicRead',
        metadata: {
            cacheControl: 'no-cache'
        },
    });

    console.log(`${filename} uploaded to ${bucketName}`)
}

在整个文档中,似乎filename部分中的upload需要本地计算机上文件的路径。我似乎找不到能够不使用本地路径上传文件的解决方案。有办法吗?

这是我的GraphQL解析器的代码,文件通过该代码:

async function uploadFile(parent, args, ctx, info) {

    const google = await uploadFileGCP(args.file, args.anchorID);
    console.log(google)
    ...
}

我觉得我缺少明显的东西,但是无法完全了解发生了什么。多谢您提供协助。

1 个答案:

答案 0 :(得分:1)

如@Kolban所说,您应该使用createWriteStream:

bucketName.file(filename).createWriteStream({resumable: false, gzip: true})