Search.../

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.

Admin Method

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
fileIds
Array<
string
>

IDs of the files to download.

Returns

Return Type:

Promise<
GenerateFilesDownloadUrlResponse
>
NAME
TYPE
DESCRIPTION
downloadUrl
string

URL for downloading the compressed file containing the specified files in the Media Manager.

Was this helpful?

Generate a download url for multiple files (dashboard page code)

Copy Code
1import { files } from 'wix-media.v2';
2
3/* Sample fileIds value:
4 * [
5 * 'd4dde1_dee18c9ada174a818ccf75c50e72c739~mv2.jpg',
6 * 'd4dde1_84a62b7aeb874f73a7b736cad663d6f2.pdf',
7 * 'd4dde1_e26da94b5cb440649ede0c433425449c~mv2.jpg'
8 * ]
9 */
10
11async function myGenerateFilesDownloadUrlFunction(fileIds) {
12 try {
13 const generatedUrl = await files.generateFilesDownloadUrl(fileIds);
14
15 const url = generatedUrl.downloadUrl;
16 return url;
17 } catch (error) {
18 console.error(error);
19 // Handle the error
20 }
21}
22
23/* Promise resolves to:
24 * {
25 * "downloadUrl": "https://archive.wixmp.com/archive/wix/38f69e35c283495187e85be0c8c06caf"
26 * }
27 */
28
Generate a download url for multiple files (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 fileIds value:
6 * [
7 * 'd4dde1_dee18c9ada174a818ccf75c50e72c739~mv2.jpg',
8 * 'd4dde1_84a62b7aeb874f73a7b736cad663d6f2.pdf',
9 * 'd4dde1_e26da94b5cb440649ede0c433425449c~mv2.jpg'
10 * ]
11 */
12
13export const myGenerateFilesDownloadUrlFunction = webMethod(Permissions.Anyone, async (fileIds) => {
14 try {
15 const elevatedGenerateFilesDownloadUrl = elevate(files.generateFilesDownloadUrl)
16 const generatedUrl = await elevatedGenerateFilesDownloadUrl(fileIds);
17
18 const url = generatedUrl.downloadUrl;
19 return url;
20 } catch (error) {
21 console.error(error);
22 // Handle the error
23 }
24});
25
26/* Promise resolves to:
27 * {
28 * "downloadUrl": "https://archive.wixmp.com/archive/wix/38f69e35c283495187e85be0c8c06caf"
29 * }
30 */
Generate a download url for all images in media

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.

Copy Code
1/********************************************
2 * Backend code - download-files-url.web.js *
3 *******************************************/
4
5import { Permissions, webMethod } from 'wix-web-module';
6import { files } from 'wix-media.v2';
7import { elevate } from 'wix-auth';
8
9export const generateDownloadUrl = webMethod(Permissions.Anyone, async (fileIds) => {
10 try {
11 const elevatedGenerateFilesDownloadUrl = elevate(files.generateFilesDownloadUrl)
12 const generatedUrl = await elevatedGenerateFilesDownloadUrl(fileIds);
13
14 return generatedUrl.downloadUrl;
15 } catch (error) {
16 console.error(error);
17 }
18});
19
20export const listImages = webMethod(Permissions.Anyone, async () => {
21 const listOptions = {
22 mediaTypes: ["IMAGE"]
23 }
24
25 try {
26 const elevatedListFiles = elevate(files.listFiles)
27 const images = await elevatedListFiles(listOptions);
28
29 return images.files;
30 } catch (error) {
31 console.error(error);
32 }
33});
34
35
36/*************
37 * Page code *
38 ************/
39
40import { listImages, generateDownloadUrl } from 'backend/download-files-url.web';
41
42$w.onReady(() => {
43 $w('#downloadFiles').disable();
44 getDownloadUrl();
45});
46
47async function getDownloadUrl() {
48 const images = await listImages();
49
50 const imageIds = images.map((image) => {
51 return image._id;
52 });
53 const downloadUrl = await generateDownloadUrl(imageIds);
54
55 $w('#downloadFiles').link = downloadUrl;
56 await $w('#downloadFiles').enable();
57}