For some reason my add_file_to_column query costs is 100001 for a small 2KB file.
What can I do to reduce the api query budget size of the upload?
@Matias.Monday Any pointers on how to make this more efficient?
async function uploadAndRemoveFile(upfile, token, itemId, columnId) {
try {
const affordability = await canAfford(token, 100001)
console.log("Can Afford Query: " + affordability.canAfford)
if(affordability.canAfford)
{
const mondayClient = initMondayClient();
mondayClient.setToken(token);
console.log("UPLOAD AND REMOVE FILE");
console.log("upfile: " + upfile);
console.log("itemId: " + itemId);
console.log("columnId: " + columnId);
const filename = path.basename(upfile)
const query = `mutation($item_id: ID!, $column_id: String!, $file: File!) {
add_file_to_column(item_id: $item_id, column_id: $column_id, file: $file) {
id
}
}`;
// Define variables for the mutation
const variables = {
"item_id": itemId,
"column_id": columnId
};
// Prepare the map object to associate the file variable with the form field
const map = {
"file": "variables.file"
};
// Read the file content
const content = await fs.promises.readFile(upfile);
// Create an instance of FormData
const formData = new FormData();
formData.append('query', query);
formData.append('variables', JSON.stringify(variables));
formData.append('map', JSON.stringify(map));
formData.append('file', content, {filename: filename});
// Define the fetch options
const options = {
method: 'POST',
headers: {
"API-Version": "2024-01",
"Authorization": "Bearer " + token
// 'Content-Type': 'multipart/form-data' header will be added automatically by the FormData instance
},
body: formData
};
const response = await fetch('https://api.monday.com/v2/file', options);
const jsonResponse = await response.json();
console.log('Response status:', jsonResponse);
return jsonResponse.status_code
}
} catch (err) {
console.error("Error in uploadAndRemoveFile:", err);
return '500';
}
}
I get this frequently
[0] Failed to upload file: {
[0] errors: [
[0] 'Complexity budget exhausted, query cost 100001 budget remaining 99951 out of 5000000 reset in 11 seconds'
[0] ],
[0] error_code: 'ComplexityException',
[0] status_code: 429,
[0] account_id: XXXXXXXXX
[0] }