Search.../

generateFileUploadUrl( )

Generates an upload URL to allow external clients to upload a file to the Media Manager.

Description

The generateFileUploadUrl() function returns a Promise that resolves to an upload URL.

To learn how external clients can use the generated upload URL in the response to upload a file to the Media Manager, see the Upload API article.

Note: Any interruption in the upload process stops the file upload. For files larger than 10MB, or when network connection is poor, use generateFileResumableUploadUrl() instead. With the resumable upload URL, any interruption in the upload process pauses the file upload, and resumes the file upload process after the interruption.

Admin Method

This function requires elevated permissions to run. This function is not universal and runs only on the backend.

Authorization

Request

This endpoint does not take any parameters

Response Object

NAME
TYPE
DESCRIPTION
uploadUrl
string

The URL for uploading a file to the Media Manager.

Status/Error Codes

Was this helpful?

Generate a file upload url (dashboard page code)

Copy Code
1import { files } from 'wix-media.v2';
2
3/* Sample mimeType value: 'image/jpeg'
4 * Sample options value:
5 * {
6 * fileName: 'image1.jpeg',
7 * parentFolderId: '103601562ec94214bee61f470b403dd5',
8 * labels: ['nature', 'outdoors']
9 * }
10 */
11
12async function myGenerateFileUploadUrlFunction(mimeType, options) {
13 try {
14 const result = await files.generateFileUploadUrl(mimeType, options);
15
16 const url = result.uploadUrl;
17 return url;
18 } catch (error) {
19 console.error(error);
20 // Handle the error
21 }
22}
23
24/* Promise resolves to:
25 * {
26 * "uploadUrl": "https://upload.wixmp.com/upload/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIzYTk0N2E5Ni01ZmFiLTQ0NjAtODVkNS1hNTIxNWRjNzRiMjEiLCJhdWQiOiJ1cm46c2VydmljZTp1cGxvYWQiLCJpc3MiOiJ1cm46c2VydmljZTp1cGxvYWQiLCJleHAiOjE2OTM5MTk3MjksImlhdCI6MTY5MzgzMzMxOSwiYnVja2V0IjoidXBsb2FkLXRtcC13aXhtcC1jZGZjMzg0ZjE1ODQxYWFhNWVhYjE2YjEiLCJwYXRoIjoibWVkaWEvZDRkZGUxXzE4Nzk3M2ZhYWRmNjQ3MGM4OTRhN2JjNmMyNjA2Yjkzfm12Mi5qcGVnIiwiY2FsbGJhY2tVcmwiOiJodHRwczovL3dpeG1wLWNkZmMzODRmMTU4NDFhYWE1ZWFiMTZiMS5hcHBzcG90LmNvbS9fYXBpL3YzL3VwbG9hZC9jYWxsYmFjaz91cGxvYWRUb2tlbj1leUpoYkdjaU9pSklVekkxTmlJc0luUjVjQ0k2SWtwWFZDSjkuZXlKcGMzTWlPaUoxY200NmMyVnlkbWxqWlRwbWFXeGxMblZ3Ykc5aFpDSXNJbUYxWkNJNkluVnlianB6WlhKMmFXTmxPbVpwYkdVdWRYQnNiMkZrSWl3aWMzVmlJam9pZFhKdU9tRndjRHBsTmpZMk16QmxOekUwWmpBME9UQmhZV1ZoTVdZeE5EbGlNMkkyT1dVek1pSXNJbWxoZENJNk1UWTVNemd6TXpNeE9Td2laWGh3SWpveE5qa3pPRGMyTlRFNUxDSnFkR2tpT2lJeU9ERXpaR013T1dJNU9EQWlMQ0ppYTNRaU9pSnpkR0YwYVdNdWQybDRjM1JoZEdsakxtTnZiU0lzSW5CMGFDSTZJaTl0WldScFlTOWtOR1JrWlRGZk1UZzNPVGN6Wm1GaFpHWTJORGN3WXpnNU5HRTNZbU0yWXpJMk1EWmlPVE4tYlhZeUxtcHdaV2NpTENKaFkyd2lPaUp3ZFdKc2FXTWlMQ0pzWm1NaU9tNTFiR3dzSW1Oc1lpSTZleUoxY213aU9pSm9kSFJ3Y3pvdkwzZHBlSEJ5YVhaaGRHVnRaV1JwWVM1aGNIQnpjRzkwTG1OdmJTOTJNeTl0Y0M5bWFXeGxjeTkxY0d4dllXUXZiV1ZrYVdFdlpEUmtaR1V4WHpFNE56azNNMlpoWVdSbU5qUTNNR000T1RSaE4ySmpObU15TmpBMllqa3pmbTEyTWk1cWNHVm5JaXdpWVhSMFlXTm9iV1Z1ZENJNmV5SndZWFJvSWpvaUwyMWxaR2xoTDJRMFpHUmxNVjh4T0RjNU56Tm1ZV0ZrWmpZME56QmpPRGswWVRkaVl6WmpNall3Tm1JNU0zNXRkakl1YW5CbFp5SXNJblZ3Ykc5aFpGOTBiMnRsYmlJNklrSk1iRlp0U0MxMFZVNDNhV2hIUWpOUGJFZEtTbnBVVm1WeVZqQjBPWFp2YkhFM2MzcFZSbkZ5YWpCS1QyOWhaalJMTkZwUE9IbENNSGhrT1dka2EyZzFMWFYxZEUxalpWcFRTblZhZEVKTVYyOTJjMFpOVERSbk9IQnVPWFJwWVZCV2JrOW9MVEZvWmtVNGJqTjFPWEZZVWxKSVdVWXdSMFF5ZVVSS1RraDNlVWxUUzBkaVUydGpNVEl3WDFCTFl5MXFTV2xMT1daVFptZDZkRkpFZFhWemJubDNWa1JyZEdsalgxOHhkazVUWTJOYVFXcHBORmt5UTJaWFJ6Sm1VemxaT0cxTGVqZEZZakpHWmtaTGJVSlBYMlIzUzBweVgweGFaakJqYTIxS1pEZHZaVlIzYjJwR2JFa3dWemR6UzNoVVNFdDRWbVZoYzFKMlYySnljbEU0V0RkeU1IcDNUREYyV1c5MVNXdE1ielJRWlhFMU5VNVNSMEpRZG5OVFpXbFZWV2xFVUZRMldrbG1WMmRQZFZoUGRrcGFkVWhDVTA5Vk9EbEdjbEozTm14R00xcFNRVkZST0RKWVpXRktRMmRWU1U1bFNHeFlkVTlzZWtNelVtSTFUQzFoTWtKRlVsQlpSRlpXWVRReWJEWTBiMnhzZUVKMk5qZG9lRjloU2tad1QwaGxRVlJXVW1NdFdqZFRZbTFIVTBGMFN6ZG1ZWEV4VlhOaFpsSnZVRWx5UzBwVWEydE5NREZOUkMwNFUzVTFVR1l4WWpWTWVsRXhNV0ZpYWt4M1pVWXdVMnRmV2xKZldHSTVja3Q1U0hadWRVSkxRMlJ1VWpCQlZGOTJjVnB5U2s5T1ZWbE1UM0JTVEU1bFExTlhjVzQzUzA1V2RuTjBVR2RyU3paMllXTnVjbTlRWDA5MGFTMUdOamRrU2tWelpWZFJhM0I2VW5WUGNIQkpTa1ZUUTJkMVpERkZRa2xOYlUxM1RWcGhWUzB4YUhoUk5HcFdWR2h2V1VJMU5FRnFhSGRpWlZSemRVbEVSRGxFT1dWWGVtaG5VVGhQZUV3MWVHdElORXN3UTFOWE5qSkRRazlQUlVrOUluMHNJbWhsWVdSbGNuTWlPbTUxYkd3c0luQmhjM04wYUhKdmRXZG9JanAwY25WbGZYMC5iRWJSTzdnYkQxaXR0TW9Hb29QUTBsbDZrbW5jSEdfc05pRjRXZzFZWTc0IiwiYWNsIjoicHVibGljIiwibWltZVR5cGUiOiJpbWFnZS9qcGVnIn0.pd9ZssMw0NOTIxmNm0gm3r5WP6ySCy4vBxlT8ufU_Vw"
27 * }
28 */
Generate a file upload url (export from backend code)

Copy Code
1import { Permissions, webMethod } from 'wix-web-module';
2import { files } from 'wix-media.v2';
3import { elevate } from 'wix-auth';
4
5/* Sample mimeType value: 'image/jpeg'
6 * Sample options value:
7 * {
8 * fileName: 'image1.jpeg',
9 * parentFolderId: '103601562ec94214bee61f470b403dd5',
10 * labels: ['nature', 'outdoors']
11 * }
12 */
13
14export const myGenerateFileUploadUrlFunction = webMethod(Permissions.Anyone, async (mimeType, options) => {
15 try {
16 const elevatedGenerateFileUploadUrl = elevate(files.generateFileUploadUrl);
17 const result = await elevatedGenerateFileUploadUrl(mimeType, options);
18
19 const url = result.uploadUrl;
20 return url;
21 } catch (error) {
22 console.error(error);
23 // Handle the error
24 }
25});
26
27/* Promise resolves to:
28 * {
29 * "uploadUrl": "https://upload.wixmp.com/upload/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIzYTk0N2E5Ni01ZmFiLTQ0NjAtODVkNS1hNTIxNWRjNzRiMjEiLCJhdWQiOiJ1cm46c2VydmljZTp1cGxvYWQiLCJpc3MiOiJ1cm46c2VydmljZTp1cGxvYWQiLCJleHAiOjE2OTM5MTk3MjksImlhdCI6MTY5MzgzMzMxOSwiYnVja2V0IjoidXBsb2FkLXRtcC13aXhtcC1jZGZjMzg0ZjE1ODQxYWFhNWVhYjE2YjEiLCJwYXRoIjoibWVkaWEvZDRkZGUxXzE4Nzk3M2ZhYWRmNjQ3MGM4OTRhN2JjNmMyNjA2Yjkzfm12Mi5qcGVnIiwiY2FsbGJhY2tVcmwiOiJodHRwczovL3dpeG1wLWNkZmMzODRmMTU4NDFhYWE1ZWFiMTZiMS5hcHBzcG90LmNvbS9fYXBpL3YzL3VwbG9hZC9jYWxsYmFjaz91cGxvYWRUb2tlbj1leUpoYkdjaU9pSklVekkxTmlJc0luUjVjQ0k2SWtwWFZDSjkuZXlKcGMzTWlPaUoxY200NmMyVnlkbWxqWlRwbWFXeGxMblZ3Ykc5aFpDSXNJbUYxWkNJNkluVnlianB6WlhKMmFXTmxPbVpwYkdVdWRYQnNiMkZrSWl3aWMzVmlJam9pZFhKdU9tRndjRHBsTmpZMk16QmxOekUwWmpBME9UQmhZV1ZoTVdZeE5EbGlNMkkyT1dVek1pSXNJbWxoZENJNk1UWTVNemd6TXpNeE9Td2laWGh3SWpveE5qa3pPRGMyTlRFNUxDSnFkR2tpT2lJeU9ERXpaR013T1dJNU9EQWlMQ0ppYTNRaU9pSnpkR0YwYVdNdWQybDRjM1JoZEdsakxtTnZiU0lzSW5CMGFDSTZJaTl0WldScFlTOWtOR1JrWlRGZk1UZzNPVGN6Wm1GaFpHWTJORGN3WXpnNU5HRTNZbU0yWXpJMk1EWmlPVE4tYlhZeUxtcHdaV2NpTENKaFkyd2lPaUp3ZFdKc2FXTWlMQ0pzWm1NaU9tNTFiR3dzSW1Oc1lpSTZleUoxY213aU9pSm9kSFJ3Y3pvdkwzZHBlSEJ5YVhaaGRHVnRaV1JwWVM1aGNIQnpjRzkwTG1OdmJTOTJNeTl0Y0M5bWFXeGxjeTkxY0d4dllXUXZiV1ZrYVdFdlpEUmtaR1V4WHpFNE56azNNMlpoWVdSbU5qUTNNR000T1RSaE4ySmpObU15TmpBMllqa3pmbTEyTWk1cWNHVm5JaXdpWVhSMFlXTm9iV1Z1ZENJNmV5SndZWFJvSWpvaUwyMWxaR2xoTDJRMFpHUmxNVjh4T0RjNU56Tm1ZV0ZrWmpZME56QmpPRGswWVRkaVl6WmpNall3Tm1JNU0zNXRkakl1YW5CbFp5SXNJblZ3Ykc5aFpGOTBiMnRsYmlJNklrSk1iRlp0U0MxMFZVNDNhV2hIUWpOUGJFZEtTbnBVVm1WeVZqQjBPWFp2YkhFM2MzcFZSbkZ5YWpCS1QyOWhaalJMTkZwUE9IbENNSGhrT1dka2EyZzFMWFYxZEUxalpWcFRTblZhZEVKTVYyOTJjMFpOVERSbk9IQnVPWFJwWVZCV2JrOW9MVEZvWmtVNGJqTjFPWEZZVWxKSVdVWXdSMFF5ZVVSS1RraDNlVWxUUzBkaVUydGpNVEl3WDFCTFl5MXFTV2xMT1daVFptZDZkRkpFZFhWemJubDNWa1JyZEdsalgxOHhkazVUWTJOYVFXcHBORmt5UTJaWFJ6Sm1VemxaT0cxTGVqZEZZakpHWmtaTGJVSlBYMlIzUzBweVgweGFaakJqYTIxS1pEZHZaVlIzYjJwR2JFa3dWemR6UzNoVVNFdDRWbVZoYzFKMlYySnljbEU0V0RkeU1IcDNUREYyV1c5MVNXdE1ielJRWlhFMU5VNVNSMEpRZG5OVFpXbFZWV2xFVUZRMldrbG1WMmRQZFZoUGRrcGFkVWhDVTA5Vk9EbEdjbEozTm14R00xcFNRVkZST0RKWVpXRktRMmRWU1U1bFNHeFlkVTlzZWtNelVtSTFUQzFoTWtKRlVsQlpSRlpXWVRReWJEWTBiMnhzZUVKMk5qZG9lRjloU2tad1QwaGxRVlJXVW1NdFdqZFRZbTFIVTBGMFN6ZG1ZWEV4VlhOaFpsSnZVRWx5UzBwVWEydE5NREZOUkMwNFUzVTFVR1l4WWpWTWVsRXhNV0ZpYWt4M1pVWXdVMnRmV2xKZldHSTVja3Q1U0hadWRVSkxRMlJ1VWpCQlZGOTJjVnB5U2s5T1ZWbE1UM0JTVEU1bFExTlhjVzQzUzA1V2RuTjBVR2RyU3paMllXTnVjbTlRWDA5MGFTMUdOamRrU2tWelpWZFJhM0I2VW5WUGNIQkpTa1ZUUTJkMVpERkZRa2xOYlUxM1RWcGhWUzB4YUhoUk5HcFdWR2h2V1VJMU5FRnFhSGRpWlZSemRVbEVSRGxFT1dWWGVtaG5VVGhQZUV3MWVHdElORXN3UTFOWE5qSkRRazlQUlVrOUluMHNJbWhsWVdSbGNuTWlPbTUxYkd3c0luQmhjM04wYUhKdmRXZG9JanAwY25WbGZYMC5iRWJSTzdnYkQxaXR0TW9Hb29QUTBsbDZrbW5jSEdfc05pRjRXZzFZWTc0IiwiYWNsIjoicHVibGljIiwibWltZVR5cGUiOiJpbWFnZS9qcGVnIn0.pd9ZssMw0NOTIxmNm0gm3r5WP6ySCy4vBxlT8ufU_Vw"
30 * }
31 */
32
Use a file upload url in an external node.js application

Copy Code
1/********************************
2 * External Node.js application *
3 *******************************/
4
5import axios from 'axios';
6
7/* Sample fileName value: 'video1.mp4'
8 * Sample contentType value: 'video/mp4'
9 * Sample videoToUpload value: 'path/to/yourVideo.mp4'
10 */
11
12async function myUploadVideoFunction(generatedUploadUrl, videoToUpload, fileName, contentType) {
13 const response = await axios.put(generatedUploadUrl, videoToUpload, {
14 headers: {
15 'Content-Type': contentType
16 },
17 params: {
18 filename: fileName
19 }
20 });
21
22 return `${response[0].uploadUrl}`;
23}