[SOLVED] InputFile replaced by File in server SDK, breaking compatibility with Node.js 18 and lower
- 0
- Functions
Hello everyone! ๐๐ป
Recently I upgraded my cloud function from version 12.0.1 to the latest version, version 14.2.0. InputFile was removed and replaced by File. This caused some problem. Below I share the solution:
In my cloud function I have a function:
await storage.createFile(photoBucketId, 'unique()', new InputFile(Readable.from(buffer), "photo.jpg", Buffer.byteLength(buffer)));
A breaking change in at least version 14.2.0 is the removal of InputFile. It is replaced by File. This is what the new function call look likes after removing InputFile.
await storage.createFile(photoBucketId, 'unique()', new File([buffer], "photo.jpg");
File isn't supported by Node.js lower than version 22. It results in a ReferenceError: File is not defined error. If you want to stay on version 18 then you can use the web-file-polyfill package:
https://www.npmjs.com/package/web-file-polyfill
Just add it to your package.json, import it and you're done: import { File, Blob } from "web-file-polyfill. I tested this on Appwrite Cloud and it works as expected, as far as I can tell.
Recommended threads
- ClientException with SocketException: Cl...
hi <@564158268319203348> i have noticed this 500 status code in my function requests, it seems its not able to connect to the internet in the function as reque...
- NEW ERROR Invalid document structure: At...
Error: ```AppwriteException: document_invalid_structure, Invalid document structure: Attribute "pb.kmsgxPkgInfo.id_info" must be an array (400)``` Iโm encounter...
- Issues with executor in Appwrite 1.9.0
Hi, Iโve recently did a fresh install of appwrite 1.9.0 self hosted and when I run a function, it just waits indefinite This is the error from the log: [Er...