How can a celery task accept a list of files as an argument?

Actually, I don't know how I could make the task have a list of files as an argument.

files = {}
   for file in request.FILES.getlist('files'):
      files[] =

      'files': files,

This throws the error 'Object of type bytes is not JSON serializable'.

I also tried to add these files to the constructor of a class, but it's still not good because the object cannot be serialized.

If I use files[] = file, throws InMemoryUploadedFile is not JSON serializable, or if I use files[] ='utf-8') => 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte

I actually have no idea how to solve it. I need that dictionary of the form name: content as an argument given to the task

You can't pass a binary file as argument to a celery task. You need to store it on the filesystem (or S3 or another storage) and then pass the path to the files as argument.

Back to Top