[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
- Local function cant access itself for li...
I use appwrite cloud, but before uploading, i want to work locally. in my local machine (windows 11) i have a running appwrite. I created a new appwrite func...
- ID.unique() is not creating unique ID in...
The Error is at line 65. See image. A Transaction should be created but it fails. Errors: Document with the requested ID already exists. Try again with a diff...
- Can't execute function because of some i...
Hi, I'm self hosting Appwrite 1.7.3 and when i execute a specific function i get an Status Code 500. And the `openruntimes-executor` prints out this error: ```...
