'Invalid document structure: Attribute "chunksTotal" has invalid type'
- 0
- Self Hosted
- Storage
- REST API
Hello, I am trying to upload a file to the Appwrite storage using the REST API. But I always get following error:
Error uploading file chunk: {
message: 'Invalid document structure: Attribute "chunksTotal" has invalid type. Value must be a valid range between 0 and 2,147,483,647',
code: 400,
type: 'document_invalid_structure',
version: '1.6.0'
}
Isn't the chunksTotal attribute set by Appwrite? I can't find anything about setting chunksTotal in the docs. I tried to append it to the formData but it also didn't help.
I am using following code:
const filePath = "./example.png";
const CHUNK_SIZE = 5 * 1024 * 1024; // 5MB
const fileStats = await fs.stat(filePath);
const fileSize = fileStats.size;
const fileName = path.basename(filePath)
let start = 0;
let end = Math.min(CHUNK_SIZE, fileSize - 1);
let fileId = null;
while (start < fileSize) {
const chunk = createReadStream(filePath, { start, end });
const formData = new FormData();
if (fileId) {
formData.append("fileId", fileId);
} else {
formData.append("fileId", "unique()");
}
formData.append("file", chunk, fileName);
formData.append("permissions[]", 'read("any")');
const headers = {
...formData.getHeaders(),
"Content-Range": `bytes ${start}-${end}/${fileSize}`,
"X-Appwrite-Project": "<project ID>",
"X-Appwrite-ID": fileId,
};
const response = await axios.post(
`<api endpoint>/v1/storage/buckets/<bucket id>/files/`,
formData,
{
headers: headers
}
);
if (!fileId) {
fileId = response.data.$id;
}
start = end + 1;
end = Math.min(start + CHUNK_SIZE - 1, fileSize - 1);
}
console.log("File upload completed!");
May I ask why not use the SDK?
I described it here: https://discord.com/channels/564160730845151244/1293858476229001249
Recommended threads
- Send Email Verification With REST
I am using REST to create a user on the server side after receiving form data from the client. After the account is successfully created i wanted to send the v...
- Use different email hosts for different ...
Hello, I have 2 projects and i want to be able to set up email templates in the projects. Both projects will have different email host configurations. I see ...
- Migrate from cloud to localhost
Hello everyone. I need to migrate my test project from cloud to localhost, however it seems that this is possible only if a self-hosted appwrite instance it's h...