generateFilesDownloadUrl( )
Generates a URL for downloading a compressed file containing specific files in the Media Manager.
Description
The generateFilesDownloadUrl()
function returns a Promise that resolves to a download URL.
The compressed file can contain up to 1000 files.
To generate one or more temporary URLs for downloading a specific file in the Media Manager, use the generateFileDownloadUrl()
function.
You can use the expirationInMinutes
parameter to set the URL expiration time, making it more secure than the generateFilesDownloadUrl()
function.
Therefore, to download private files, use the generateFileDownloadUrl
function for each private file that you want to generate a download URL for.
This function requires elevated permissions to run. This function is not universal and runs only on the backend.
Syntax
function generateFilesDownloadUrl(fileIds: Array<string>): Promise<GenerateFilesDownloadUrlResponse>
generateFilesDownloadUrl Parameters
NAME
TYPE
DESCRIPTION
IDs of the files to download.
Returns
Return Type:
NAME
TYPE
DESCRIPTION
URL for downloading the compressed file containing the specified files in the Media Manager.
Was this helpful?
1import { files } from 'wix-media.v2';23/* Sample fileIds value:4 * [5 * 'd4dde1_dee18c9ada174a818ccf75c50e72c739~mv2.jpg',6 * 'd4dde1_84a62b7aeb874f73a7b736cad663d6f2.pdf',7 * 'd4dde1_e26da94b5cb440649ede0c433425449c~mv2.jpg'8 * ]9 */1011async function myGenerateFilesDownloadUrlFunction(fileIds) {12 try {13 const generatedUrl = await files.generateFilesDownloadUrl(fileIds);1415 const url = generatedUrl.downloadUrl;16 return url;17 } catch (error) {18 console.error(error);19 // Handle the error20 }21}2223/* Promise resolves to:24 * {25 * "downloadUrl": "https://archive.wixmp.com/archive/wix/38f69e35c283495187e85be0c8c06caf"26 * }27 */28
1import { Permissions, webMethod } from 'wix-web-module';2import { files } from 'wix-media.v2';3import { elevate } from 'wix-auth';45/* Sample fileIds value:6 * [7 * 'd4dde1_dee18c9ada174a818ccf75c50e72c739~mv2.jpg',8 * 'd4dde1_84a62b7aeb874f73a7b736cad663d6f2.pdf',9 * 'd4dde1_e26da94b5cb440649ede0c433425449c~mv2.jpg'10 * ]11 */1213export const myGenerateFilesDownloadUrlFunction = webMethod(Permissions.Anyone, async (fileIds) => {14 try {15 const elevatedGenerateFilesDownloadUrl = elevate(files.generateFilesDownloadUrl)16 const generatedUrl = await elevatedGenerateFilesDownloadUrl(fileIds);1718 const url = generatedUrl.downloadUrl;19 return url;20 } catch (error) {21 console.error(error);22 // Handle the error23 }24});2526/* Promise resolves to:27 * {28 * "downloadUrl": "https://archive.wixmp.com/archive/wix/38f69e35c283495187e85be0c8c06caf"29 * }30 */
This is an example of a function running on page ready. The function lists all the images from media, and then uses their IDs to create a download url.
1/********************************************2 * Backend code - download-files-url.web.js *3 *******************************************/45import { Permissions, webMethod } from 'wix-web-module';6import { files } from 'wix-media.v2';7import { elevate } from 'wix-auth';89export const generateDownloadUrl = webMethod(Permissions.Anyone, async (fileIds) => {10 try {11 const elevatedGenerateFilesDownloadUrl = elevate(files.generateFilesDownloadUrl)12 const generatedUrl = await elevatedGenerateFilesDownloadUrl(fileIds);1314 return generatedUrl.downloadUrl;15 } catch (error) {16 console.error(error);17 }18});1920export const listImages = webMethod(Permissions.Anyone, async () => {21 const listOptions = {22 mediaTypes: ["IMAGE"]23 }2425 try {26 const elevatedListFiles = elevate(files.listFiles)27 const images = await elevatedListFiles(listOptions);2829 return images.files;30 } catch (error) {31 console.error(error);32 }33});343536/*************37 * Page code *38 ************/3940import { listImages, generateDownloadUrl } from 'backend/download-files-url.web';4142$w.onReady(() => {43 $w('#downloadFiles').disable();44 getDownloadUrl();45});4647async function getDownloadUrl() {48 const images = await listImages();4950 const imageIds = images.map((image) => {51 return image._id;52 });53 const downloadUrl = await generateDownloadUrl(imageIds);5455 $w('#downloadFiles').link = downloadUrl;56 await $w('#downloadFiles').enable();57}