google-api-nodejs-client
google-api-nodejs-client copied to clipboard
TypeError [ERR_INVALID_ARG_TYPE]: The "paths[0]" argument must be of type string. Received an instance of Object
hi i got this error "TypeError [ERR_INVALID_ARG_TYPE]: The "paths[0]" argument must be of type string. Received an instance of Object" every time i try to upload a file to my drive account and here is the code
"use server";
import { google } from "googleapis";
import * as fs from "fs";
import { join } from "path";
export async function addFile(e: FormData) {
const file: File | null = e.get("file") as unknown as File;
const bytes = await file?.arrayBuffer();
const buffer = Buffer.from(bytes);
const path = join("/", "/tmp", file.name.trim());
fs.writeFileSync(path, buffer);
const keyFile = await JSON.parse(
fs.readFileSync(process.cwd() + `/src/app/key.json`, "utf-8")
);
const auth = new google.auth.GoogleAuth({
keyFile,
scopes: ["https://www.googleapis.com/auth/drive"],
});
const drive = google.drive({
version: "v3",
auth,
});
const response = () => {
return new Promise((resolve, reject) => {
drive.files.create(
{
requestBody: {
name: file.name,
parents: ["1TebOIirZf_P9xb2Vc2fAVhdMrTU_rN-U"],
},
media: {
body: fs.createReadStream(path),
mimeType: file.type.toString(),
},
fields: "id",
},
function (err, file) {
if (err) {
reject(err);
}
resolve(file);
}
);
});
};
await response().catch((err) => console.log(err));
}
so could any one help with that or have a tip for solve this problem i use next.js 14.1.0 as a javascript frame work node with version 20.9.0
I'm facing this same issue.
Is there currently a way to upload files with Next.js 14+ or do we need to wait for this to be fixed? Any timeline for the fix? Thanks!
Hi, so recently I also having this kind of issue while uploading my images to the Google Cloud storage with the help of multer and storing it to memory storage before uploading to the cloud.
I figured out that the keyFile that we are trying to store is a json object, but the keyFile attribute only wants a path to the key.json
I hope this gonna solves your issues. I'm sorry because my English is not that good :)