WebMethod request timed-out after 14 seconds with MediaManager

Hi there,

My code below searches for all images in one of my wix mediaManager files, and compares it with the name of an image in a database. For the code below I decided to put the name of an image in order to test the code. If I code for a limit of 1000 images, up to 3000 it works perfectly. But for a limit of 17,000 images it unfortunately does not work.
Maybe there would be a solution for me to filter the search in the image file with only the name of the image in order to have only the information of a single image rather than 17,000 a bit like for the .contains jquery collections

Cordially

Back-end code :


import { mediaManager } from 'wix-media-backend';

const filters = {
  parentFolderId: "ab0f1603bc1744259d9044128973832f"
};

const sorting = {
  order: "asc",
  field: "originalFileName"
};

const paging1 = {
  limit: 1000,
  skip: 0
};

const paging2 = {
  limit: 1000,
  skip: 1000
};

const paging3 = {
  limit: 1000,
  skip: 2000
};

const paging4 = {
  limit: 1000,
  skip: 3000
};

const paging5 = {
  limit: 1000,
  skip: 4000
};

const paging6 = {
  limit: 1000,
  skip: 5000
};

const paging7 = {
  limit: 1000,
  skip: 6000
};

const paging8 = {
  limit: 1000,
  skip: 7000
};

const paging9 = {
  limit: 1000,
  skip: 8000
};

const paging10 = {
  limit: 1000,
  skip: 9000
};

const paging11 = {
  limit: 1000,
  skip: 10000
};

const paging12 = {
  limit: 1000,
  skip: 11000
};

const paging13 = {
  limit: 1000,
  skip: 12000
};

const paging14 = {
  limit: 1000,
  skip: 13000
};

const paging15 = {
  limit: 1000,
  skip: 14000
};

const paging16 = {
  limit: 1000,
  skip: 15000
};

const paging17 = {
  limit: 1000,
  skip: 1000
};

export function myListFilesFunction() {
  return Promise.all([
  mediaManager.listFiles(filters, sorting, paging1),
  mediaManager.listFiles(filters, sorting, paging2),
  mediaManager.listFiles(filters, sorting, paging3),
  mediaManager.listFiles(filters, sorting, paging4),
  mediaManager.listFiles(filters, sorting, paging5),
  mediaManager.listFiles(filters, sorting, paging6),
  mediaManager.listFiles(filters, sorting, paging7),
  mediaManager.listFiles(filters, sorting, paging8),
  mediaManager.listFiles(filters, sorting, paging9),
  mediaManager.listFiles(filters, sorting, paging10),
  mediaManager.listFiles(filters, sorting, paging11),
  mediaManager.listFiles(filters, sorting, paging12),
  mediaManager.listFiles(filters, sorting, paging13),
  mediaManager.listFiles(filters, sorting, paging14),
  mediaManager.listFiles(filters, sorting, paging15),
  mediaManager.listFiles(filters, sorting, paging16),
  mediaManager.listFiles(filters, sorting, paging17)
])
    .then((myFiles) => {

      const cachemyFiles = { items: [] }
    for (const resultmyFiles of myFiles) {
        cachemyFiles.items = cachemyFiles.items.concat(resultmyFiles);
        console.log("cachemyFiles.items" + JSON.stringify(cachemyFiles.items))
    }

      return cachemyFiles.items;
    })
    .catch((error) => {
      console.error(error);
    });
}

Front end code:


import {fetch} from 'wix-fetch';
import {getJSON} from 'wix-fetch';
import {getUFvalue} from 'backend/Football.jsw';
import {multiply} from 'backend/Football.jsw';
import wixData from 'wix-data';
import wixwindow from 'wix-window';
import {myListFilesFunction} from 'backend/aModule-1.jsw'

$w.onReady(function () {

wixData.query("Media/Folders")
  .limit(1000)
  .find()
  .then( (results) => {
    console.log("results: " + JSON.stringify(results))
  } );

});

$w.onReady(async function () {

var name = "257100" + ".png"
var arrName = []
const resultsmyListFilesFunction = await myListFilesFunction()

const xLen = resultsmyListFilesFunction.length
console.log("TEST LEN" + xLen);
for (let i=0; i < xLen; i++) {
const originalFileName = resultsmyListFilesFunction[i].originalFileName

if (name === String(originalFileName)) {
console.log("Name : " + name + "originalFileName : " + originalFileName)
arrName.push(originalFileName)

}

}

console.log("ResFinal : " + arrName)

})



That myListFilesFunction takes too long to return its results within the 14 seconds that the frontend listens to a result from the backend.
One solution is to move all seperate calls from the backend to the frontend . That way, you’ll get 14 secs per call, so 17 x 14 in total.

I have try but it’s not working.

Back end code :


import { mediaManager } from 'wix-media-backend';

const filters = {
  parentFolderId: "ab0f1603bc1744259d9044128973832f"
};

const sorting = {
  order: "asc",
  field: "originalFileName"
};

const paging1 = {
  limit: 1000,
  skip: 0
};

const paging2 = {
  limit: 1000,
  skip: 1000
};

const paging3 = {
  limit: 1000,
  skip: 2000
};

const paging4 = {
  limit: 1000,
  skip: 3000
};

const paging5 = {
  limit: 1000,
  skip: 4000
};

const paging6 = {
  limit: 1000,
  skip: 5000
};

const paging7 = {
  limit: 1000,
  skip: 6000
};

const paging8 = {
  limit: 1000,
  skip: 7000
};

const paging9 = {
  limit: 1000,
  skip: 8000
};

const paging10 = {
  limit: 1000,
  skip: 9000
};

const paging11 = {
  limit: 1000,
  skip: 10000
};

const paging12 = {
  limit: 1000,
  skip: 11000
};

const paging13 = {
  limit: 1000,
  skip: 12000
};

const paging14 = {
  limit: 1000,
  skip: 13000
};

const paging15 = {
  limit: 1000,
  skip: 14000
};

const paging16 = {
  limit: 1000,
  skip: 15000
};

const paging17 = {
  limit: 1000,
  skip: 1000
};

export function myListFilesFunction1() {
  return mediaManager.listFiles(filters, sorting, paging1)
    .then((myFiles) => {

      return myFiles;
    })
    .catch((error) => {
      console.error(error);
    });
}

export function myListFilesFunction2() {
  return mediaManager.listFiles(filters, sorting, paging2)
    .then((myFiles) => {

      return myFiles;
    })
    .catch((error) => {
      console.error(error);
    });
}

export function myListFilesFunction3() {
  return mediaManager.listFiles(filters, sorting, paging3)
    .then((myFiles) => {

      return myFiles;
    })
    .catch((error) => {
      console.error(error);
    });
}

export function myListFilesFunction4() {
  return mediaManager.listFiles(filters, sorting, paging4)
    .then((myFiles) => {

      return myFiles;
    })
    .catch((error) => {
      console.error(error);
    });
}

export function myListFilesFunction5() {
  return mediaManager.listFiles(filters, sorting, paging5)
    .then((myFiles) => {

      return myFiles;
    })
    .catch((error) => {
      console.error(error);
    });
}

export function myListFilesFunction6() {
  return mediaManager.listFiles(filters, sorting, paging6)
    .then((myFiles) => {

      return myFiles;
    })
    .catch((error) => {
      console.error(error);
    });
}

export function myListFilesFunction7() {
  return mediaManager.listFiles(filters, sorting, paging7)
    .then((myFiles) => {

      return myFiles;
    })
    .catch((error) => {
      console.error(error);
    });
}

export function myListFilesFunction8() {
  return mediaManager.listFiles(filters, sorting, paging8)
    .then((myFiles) => {

      return myFiles;
    })
    .catch((error) => {
      console.error(error);
    });
}

export function myListFilesFunction9() {
  return mediaManager.listFiles(filters, sorting, paging9)
    .then((myFiles) => {

      return myFiles;
    })
    .catch((error) => {
      console.error(error);
    });
}

export function myListFilesFunction10() {
  return mediaManager.listFiles(filters, sorting, paging10)
    .then((myFiles) => {

      return myFiles;
    })
    .catch((error) => {
      console.error(error);
    });
}

export function myListFilesFunction11() {
  return mediaManager.listFiles(filters, sorting, paging11)
    .then((myFiles) => {

      return myFiles;
    })
    .catch((error) => {
      console.error(error);
    });
}

export function myListFilesFunction12() {
  return mediaManager.listFiles(filters, sorting, paging12)
    .then((myFiles) => {

      return myFiles;
    })
    .catch((error) => {
      console.error(error);
    });
}

export function myListFilesFunction13() {
  return mediaManager.listFiles(filters, sorting, paging13)
    .then((myFiles) => {

      return myFiles;
    })
    .catch((error) => {
      console.error(error);
    });
}

export function myListFilesFunction14() {
  return mediaManager.listFiles(filters, sorting, paging14)
    .then((myFiles) => {

      return myFiles;
    })
    .catch((error) => {
      console.error(error);
    });
}

export function myListFilesFunction15() {
  return mediaManager.listFiles(filters, sorting, paging15)
    .then((myFiles) => {

      return myFiles;
    })
    .catch((error) => {
      console.error(error);
    });
}

export function myListFilesFunction16() {
  return mediaManager.listFiles(filters, sorting, paging16)
    .then((myFiles) => {

      return myFiles;
    })
    .catch((error) => {
      console.error(error);
    });
}

export function myListFilesFunction17() {
  return mediaManager.listFiles(filters, sorting, paging17)
    .then((myFiles) => {

      return myFiles;
    })
    .catch((error) => {
      console.error(error);
    });
}

Front end code :


import {fetch} from 'wix-fetch';
import {getJSON} from 'wix-fetch';
import {getUFvalue} from 'backend/Football.jsw';
import {multiply} from 'backend/Football.jsw';
import wixData from 'wix-data';
import wixwindow from 'wix-window';
import {myListFilesFunction1} from 'backend/aModule-1.jsw'
import {myListFilesFunction2} from 'backend/aModule-1.jsw'
import {myListFilesFunction3} from 'backend/aModule-1.jsw'
import {myListFilesFunction4} from 'backend/aModule-1.jsw'
import {myListFilesFunction5} from 'backend/aModule-1.jsw'
import {myListFilesFunction6} from 'backend/aModule-1.jsw'
import {myListFilesFunction7} from 'backend/aModule-1.jsw'
import {myListFilesFunction8} from 'backend/aModule-1.jsw'
import {myListFilesFunction9} from 'backend/aModule-1.jsw'
import {myListFilesFunction10} from 'backend/aModule-1.jsw'
import {myListFilesFunction11} from 'backend/aModule-1.jsw'
import {myListFilesFunction12} from 'backend/aModule-1.jsw'
import {myListFilesFunction13} from 'backend/aModule-1.jsw'
import {myListFilesFunction14} from 'backend/aModule-1.jsw'
import {myListFilesFunction15} from 'backend/aModule-1.jsw'
import {myListFilesFunction16} from 'backend/aModule-1.jsw'
import {myListFilesFunction17} from 'backend/aModule-1.jsw'




$w.onReady(function () {



wixData.query("Media/Folders")
  .limit(1000)
  .find()
  .then( (results) => {
    console.log("results: " + JSON.stringify(results))
  } );



});


$w.onReady(async function () {

var name = "257100" + ".png"
var arrName = []


const resultsmyListFilesFunction1 = await myListFilesFunction1()
const xLen1 = resultsmyListFilesFunction1.length
console.log("TEST LEN" + xLen1);
for (let i=0; i < xLen1; i++) {
const originalFileName1 = resultsmyListFilesFunction1[i].originalFileName


if (name === String(originalFileName1)) {
console.log("Name1 : " + name + "originalFileName1 : " + originalFileName1)
arrName.push(originalFileName1)

}
}

const resultsmyListFilesFunction2 = await myListFilesFunction2()
const xLen2 = resultsmyListFilesFunction2.length
console.log("TEST LEN" + xLen2);
for (let i=0; i < xLen2; i++) {
const originalFileName2 = resultsmyListFilesFunction2[i].originalFileName

if (name === String(originalFileName2)) {
console.log("Name2 : " + name + "originalFileName2 : " + originalFileName2)
arrName.push(originalFileName2)

}
}

const resultsmyListFilesFunction3 = await myListFilesFunction3()
const xLen3 = resultsmyListFilesFunction3.length
console.log("TEST LEN" + xLen3);
for (let i=0; i < xLen3; i++) {
const originalFileName3 = resultsmyListFilesFunction3[i].originalFileName

if (name === String(originalFileName3)) {
console.log("Name3 : " + name + "originalFileName3 : " + originalFileName3)
arrName.push(originalFileName3)

}
}

const resultsmyListFilesFunction4 = await myListFilesFunction4()
const xLen4 = resultsmyListFilesFunction4.length
console.log("TEST LEN" + xLen4);
for (let i=0; i < xLen4; i++) {
const originalFileName4 = resultsmyListFilesFunction4[i].originalFileName

if (name === String(originalFileName4)) {
console.log("Name4 : " + name + "originalFileName4 : " + originalFileName4)
arrName.push(originalFileName4)

}
}


const resultsmyListFilesFunction5 = await myListFilesFunction5()
const xLen5 = resultsmyListFilesFunction5.length
console.log("TEST LEN" + xLen5);
for (let i=0; i < xLen5; i++) {
const originalFileName5 = resultsmyListFilesFunction5[i].originalFileName

if (name === String(originalFileName5)) {
console.log("Name5 : " + name + "originalFileName5 : " + originalFileName5)
arrName.push(originalFileName5)

}
}

const resultsmyListFilesFunction6 = await myListFilesFunction6()
const xLen6 = resultsmyListFilesFunction6.length
console.log("TEST LEN" + xLen6);
for (let i=0; i < xLen6; i++) {
const originalFileName6 = resultsmyListFilesFunction6[i].originalFileName

if (name === String(originalFileName6)) {
console.log("Name6 : " + name + "originalFileName6 : " + originalFileName6)
arrName.push(originalFileName6)

}
}

const resultsmyListFilesFunction7 = await myListFilesFunction7()
const xLen7 = resultsmyListFilesFunction7.length
console.log("TEST LEN" + xLen7);
for (let i=0; i < xLen7; i++) {
const originalFileName7 = resultsmyListFilesFunction7[i].originalFileName

if (name === String(originalFileName7)) {
console.log("Name7 : " + name + "originalFileName7 : " + originalFileName7)
arrName.push(originalFileName7)

}
}

const resultsmyListFilesFunction8 = await myListFilesFunction8()
const xLen8 = resultsmyListFilesFunction8.length
console.log("TEST LEN" + xLen8);
for (let i=0; i < xLen8; i++) {
const originalFileName8 = resultsmyListFilesFunction8[i].originalFileName

if (name === String(originalFileName8)) {
console.log("Name8 : " + name + "originalFileName8 : " + originalFileName8)
arrName.push(originalFileName8)

}
}

const resultsmyListFilesFunction9 = await myListFilesFunction9()
const xLen9 = resultsmyListFilesFunction9.length
console.log("TEST LEN" + xLen9);
for (let i=0; i < xLen9; i++) {
const originalFileName9 = resultsmyListFilesFunction9[i].originalFileName

if (name === String(originalFileName9)) {
console.log("Name9 : " + name + "originalFileName9 : " + originalFileName9)
arrName.push(originalFileName9)

}
}

const resultsmyListFilesFunction10 = await myListFilesFunction10()
const xLen10 = resultsmyListFilesFunction10.length
console.log("TEST LEN" + xLen10);
for (let i=0; i < xLen10; i++) {
const originalFileName10 = resultsmyListFilesFunction10[i].originalFileName

if (name === String(originalFileName10)) {
console.log("Name10 : " + name + "originalFileName10 : " + originalFileName10)
arrName.push(originalFileName10)

}
}

const resultsmyListFilesFunction11 = await myListFilesFunction11()
const xLen11 = resultsmyListFilesFunction11.length
console.log("TEST LEN" + xLen11);
for (let i=0; i < xLen11; i++) {
const originalFileName11 = resultsmyListFilesFunction11[i].originalFileName

if (name === String(originalFileName11)) {
console.log("Name11 : " + name + "originalFileName11 : " + originalFileName11)
arrName.push(originalFileName11)

}
}

const resultsmyListFilesFunction12 = await myListFilesFunction12()
const xLen12 = resultsmyListFilesFunction12.length
console.log("TEST LEN" + xLen12);
for (let i=0; i < xLen12; i++) {
const originalFileName12 = resultsmyListFilesFunction12[i].originalFileName

if (name === String(originalFileName12)) {
console.log("Name12 : " + name + "originalFileName12 : " + originalFileName12)
arrName.push(originalFileName12)

}
}

const resultsmyListFilesFunction13 = await myListFilesFunction13()
const xLen13 = resultsmyListFilesFunction13.length
console.log("TEST LEN" + xLen13);
for (let i=0; i < xLen13; i++) {
const originalFileName13 = resultsmyListFilesFunction13[i].originalFileName

if (name === String(originalFileName13)) {
console.log("Name13 : " + name + "originalFileName13 : " + originalFileName13)
arrName.push(originalFileName13)

}
}

const resultsmyListFilesFunction14 = await myListFilesFunction14()
const xLen14 = resultsmyListFilesFunction14.length
console.log("TEST LEN" + xLen14);
for (let i=0; i < xLen14; i++) {
const originalFileName14 = resultsmyListFilesFunction14[i].originalFileName

if (name === String(originalFileName14)) {
console.log("Name14 : " + name + "originalFileName14 : " + originalFileName14)
arrName.push(originalFileName14)

}
}

const resultsmyListFilesFunction15 = await myListFilesFunction15()
const xLen15 = resultsmyListFilesFunction15.length
console.log("TEST LEN" + xLen15);
for (let i=0; i < xLen15; i++) {
const originalFileName15 = resultsmyListFilesFunction15[i].originalFileName

if (name === String(originalFileName15)) {
console.log("Name15 : " + name + "originalFileName15 : " + originalFileName15)
arrName.push(originalFileName15)

}
}

const resultsmyListFilesFunction16 = await myListFilesFunction16()
const xLen16 = resultsmyListFilesFunction16.length
console.log("TEST LEN" + xLen16);
for (let i=0; i < xLen16; i++) {
const originalFileName16 = resultsmyListFilesFunction16[i].originalFileName

if (name === String(originalFileName16)) {
console.log("Name16 : " + name + "originalFileName16 : " + originalFileName16)
arrName.push(originalFileName16)

}
}


const resultsmyListFilesFunction17 = await myListFilesFunction17()
const xLen17 = resultsmyListFilesFunction17.length
console.log("TEST LEN" + xLen17);
for (let i=0; i < xLen17; i++) {
const originalFileName17 = resultsmyListFilesFunction17[i].originalFileName

if (name === String(originalFileName17)) {
console.log("Name17 : " + name + "originalFileName17 : " + originalFileName17)
arrName.push(originalFileName17)

}
}















console.log("ResFinal : " + arrName)

})