'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
- Error upgrading from 1.8.1 to 1.9.0
DO Self-hosted server failed to upgrade with this error "Error response from daemon: client version 1.52 is too new. Maximum supported API version is 1.42". U...
- MariaDB refuses to connect to appwrite
Earlier, I tried updating my Appwrite version from 18.1.x to the latest release because my Flutter package required it to function properly. I used the official...
- executeFunction intermittently throws Fo...
Environment: Flutter app using the Appwrite Flutter SDK, calling executeFunction for [describe endpoint, e.g. live-stream-related function]. *Description*: Int...