Problem
I’m trying to create a file in Appwrite Storage using the node-appwrite SDK.
The InputFile is generated from a base64 buffer, and I’m passing a fileId with ID.unique().
Code snippet:
TypeScript
const fileBuffer = Buffer.from(base64, 'base64');
const filenameForUpload = filename ?? `${ID.unique()}.bin`;
let newFileInBucket = await storage.createFile(
storageId,
ID.unique(),
InputFile.fromBuffer(fileBuffer, filenameForUpload),
[Permission.read(Role.team(teamId)), Permission.write(Role.team(teamId))]
);
Error:
TypeScript
AppwriteException: Param "fileId" is not optional
at _Client.call (.../node_modules/node-appwrite/dist/client.mjs:294:13)
...
Notes
ID.unique()returns a valid value (already logged).- The error still occurs even when logging the
fileId.
Environment
- Node.js v22
TL;DR
Bug report for creating a file in Appwrite Storage using `node-appwrite` SDK. Error states "Param 'fileId' is not optional" even when correctly passing it. Developers suggest trying a different syntax for `createFile` method.may try
TypeScript
const result = await storage.createFile({
bucketId: '<BUCKET_ID>',
fileId: '<FILE_ID>',
file: InputFile.fromPath('/path/to/file', 'filename'),
permissions: ["read("any")"] // optional
});
Recommended threads
- Redirect from clicking team invite link ...
Hi all! Pretty new to app development in general so this might be something more generic than appwrite, but I've found (after reading the docs for the Teams API...
- Hosting Issues with Static IP not domain...
I have a machine with Static Public IP. I want to host Appwrite Site on it but I tried it but it doesn't allow IP addresses in Domain names. What should I do h...
- encrypt and decrypt buckets
I have a bucket where I switched from encryption to not encrypting files. I later realized that files already uploaded earlier stay encrypted. Now I have a buck...