Programmable Media

Upload multiple files in Node.js (video tutorial)

Last updated: Jul-19-2024


Learn how to upload assets in Node.js using the Cloudinary Node.js SDK.

Video tutorial

View the code
You can find the code from this tutorial in GitHub.

Tutorial contents

This tutorial presents the following topics. Click a timestamp to jump to that part of the video.

Upload one image using the Node.js SDK

Jump to this spot in the video  0:12 Once you have installed and configured the Cloudinary Node.js SDK, you can upload an image using the upload method of the Upload API. For example, to upload an image located at /images/image-1 in your file system:

Run the code and get a response

Jump to this spot in the video  0:21 Run the code using npm run. The result will contain a secure URL. Copy and paste the URL into your browser to view the uploaded image.

Upload multiple images

Jump to this spot in the video  0:36 To upload multiple images, you could create an array containing the file paths of the images you want to upload. Then, iterate through the array and apply the upload method to each image.

Run the code and get a response

Jump to this spot in the video  0:58 Run this code using npm run. You'll receive a response for each image, including its secure URL.

Install p-limit

Jump to this spot in the video  1:11 If you're uploading a large number of images, consider using a different upload method like p-limit. This enables you to concurrently utilize promises while controlling the maximum number of simultaneous executions. Install p-limit using npm install p-limit.

Set the concurrent promise limit

Jump to this spot in the video  1:40 Start by importing p-limit and specify the maximum number of promises that can execute concurrently. In this example, the limit is set to 10 concurrent promises, which fits the limitation for the free plan. For example, if you're uploading 100 images, 10 uploads will process concurrently until all images are uploaded.

Batch upload using p-limit

Jump to this spot in the video  1:58 Create a function called imagesToUpload, which maps over each image in the images array. Within this function, utilize p-limit to enforce the concurrent promise limit set earlier. Inside the limited function, use the upload method to upload each image. Specify the current image using image from the mapping and return the upload result. Execute the function using let uploads = await Promise.all(imagesToUpload); and log the results to the console.

Run the batch upload

Jump to this spot in the video  2:44 Run the code to initiate the uploads, and get an array containing the outcomes of all the promises.

Keep learning

Related topics

If you like this, you might also like...

Configure the Node.js SDK
Install and configure the Cloudinary Node.js SDK
Upload Videos in Node.js
Upload videos to Cloudinary using the Node.js SDK
Upload Widget
Embed an Upload Widget in your site


Cloudinary Academy


Check out the Cloudinary Academy for free self-paced Cloudinary courses on a variety of developer or DAM topics, or register for formal instructor-led courses, either virtual or on-site.


✔️ Feedback sent!

Rate this page: