Javascript 如何使用multer将文件传输到Google云存储?

Javascript 如何使用multer将文件传输到Google云存储?,javascript,node.js,express,google-cloud-storage,multer,Javascript,Node.js,Express,Google Cloud Storage,Multer,我正在做: const fileId = uuidv4() console.log(process.env.GOOGLE_PRIVATE_KEY) const storage = new GoogleCloudStorage({ projectId: process.env.GOOGLE_RAW_AUDIO_BUCKET, credentials: { client_email: process.env.GOOGLE

我正在做:

    const fileId = uuidv4()
    console.log(process.env.GOOGLE_PRIVATE_KEY)
    const storage = new GoogleCloudStorage({
        projectId: process.env.GOOGLE_RAW_AUDIO_BUCKET,
        credentials: {
            client_email: process.env.GOOGLE_CLIENT_EMAIL,
            private_key: process.env.GOOGLE_PRIVATE_KEY.replace(/\\n/g, '\n')
        }
    });

    const bucket = storage.bucket(process.env.GOOGLE_RAW_AUDIO_BUCKET);
    const blob = bucket.file(fileId + 'mp3');
    const blobStream = blob.createWriteStream()

    console.log(req.file)

    // var readableStream = fs.createReadStream(req.file.path);
    fs.createReadStream(req.file.buffer).pipe(blobStream)
但我有一个错误:

TypeError [ERR_INVALID_ARG_VALUE]: The argument 'path' must be a string or Uint8Array without null bytes. Received <Buffer ff f3 38 c4 00 00 00 03 48 00 00 00 00 4c 41 4d 45 33 2e 39 39 2e 35 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 ..
TypeError[ERR\u INVALID\u ARG\u VALUE]:参数“path”必须是不带空字节的字符串或Uint8Array。收到
成功了

成功了


    const storage = new GoogleCloudStorage({
        projectId: process.env.GOOGLE_RAW_AUDIO_BUCKET,
        credentials: {
            client_email: process.env.GOOGLE_CLIENT_EMAIL,
            private_key: process.env.GOOGLE_PRIVATE_KEY.replace(/\\n/g, '\n')
        }
    });

    const bucket = storage.bucket(process.env.GOOGLE_RAW_AUDIO_BUCKET);
    const blob = bucket.file(filePath);
    const blobStream = blob.createWriteStream()

    return new Promise((resolve, reject) => {
            streamifier.createReadStream(req.file.buffer)
                .on('error', (err) => {
                    return reject(err);
                })
                .pipe(blobStream)
                .on('finish', (resp) => {
                    return resolve();
                });
        })
        .then(() => {
            filePath = process.env.GOOGLE_RAW_AUDIO_BUCKET + '/' + filePath
            return db.models.Audio.create({
                filePath
            })
        })
        .then((dbAudio) => {
            console.log(dbAudio)
            let id = dbAudio.id
            res.send({ id, filePath })
        })