Search.../

generateFolderDownloadUrl( )

Generates a URL for downloading a compressed file containing a specific folder in the Media Manager.

Description

The generateFolderDownloadUrl() function returns a Promise that resolves to a download URL.

The compressed file can contain sub-folders, and up to 1000 files.

Admin Method

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

Syntax

function generateFolderDownloadUrl(folderId: string): Promise<GenerateFolderDownloadUrlResponse>

generateFolderDownloadUrl Parameters

NAME
TYPE
DESCRIPTION
folderId
string

Folder ID.

Returns

Return Type:

Promise<
GenerateFolderDownloadUrlResponse
>
NAME
TYPE
DESCRIPTION
downloadUrl
string

URL for downloading a specific folder in the Media Manager.

Was this helpful?

Generate a folder download url (dashboard page code)

Copy Code
1import { folders } from 'wix-media.v2';
2
3async function generateFolderDownloadUrl(folderId) {
4 try {
5 const result = await folders.generateFolderDownloadUrl(folderId);
6
7 const folderDownloadUrl = result.downloadUrl;
8 return folderDownloadUrl;
9 } catch (error) {
10 console.error(error);
11 // Handle the error
12 }
13}
14
15/* Promise resolves to:
16 * {
17 * "downloadUrl": "https://archive.wixmp.com/archive/wix/b367fe21877e4ef589cde5352a3a04af"
18 * }
19 */
Generate a folder download url (export from backend code)

Copy Code
1import { Permissions, webMethod } from 'wix-web-module';
2import { folders } from 'wix-media.v2';
3import { elevate } from 'wix-auth';
4
5export const generateFolderDownloadUrl = webMethod(Permissions.Anyone, async (folderId) => {
6 try {
7 const elevatedGenerateFolderDownloadUrl = elevate(folders.generateFolderDownloadUrl);
8 const result = await elevatedGenerateFolderDownloadUrl(folderId);
9
10 const folderDownloadUrl = result.downloadUrl;
11 return folderDownloadUrl;
12 } catch (error) {
13 console.error(error);
14 // Handle the error
15 }
16});
17
18/* Promise resolves to:
19 * {
20 * "downloadUrl": "https://archive.wixmp.com/archive/wix/b367fe21877e4ef589cde5352a3a04af"
21 * }
22 */
23
Generate a folder download url for a chosen folder

This code is an example of a page on which a visitor chooses a folder from a dropdown list, and then receives a folder download url for that folder.

Copy Code
1/***************************************************
2 * Backend code - generate-folder-download-url.web.js *
3 **************************************************/
4
5import { Permissions, webMethod } from 'wix-web-module';
6import { folders } from 'wix-media.v2';
7import { elevate } from 'wix-auth';
8
9export const listFolders = webMethod(Permissions.Anyone, async () => {
10 try {
11 const elevatedListFolders = elevate(folders.listFolders)
12 const foldersList = await elevatedListFolders();
13
14 return foldersList;
15 } catch (error) {
16 console.error(error);
17 }
18});
19
20export const generateDownloadUrl = webMethod(Permissions.Anyone, async (folderId) => {
21 try {
22 const elevatedGenerateFolderDownloadUrl = elevate(folders.generateFolderDownloadUrl);
23 const result = await elevatedGenerateFolderDownloadUrl(folderId);
24
25 const folderDownloadUrl = result.downloadUrl;
26 return folderDownloadUrl;
27 } catch (error) {
28 console.error(error);
29 }
30});
31
32/*************
33 * Page code *
34 ************/
35
36import { generateDownloadUrl, listFolders } from 'backend/generate-folder-download-url.web';
37
38$w.onReady(async () => {
39 await populateFoldersDropdown();
40
41 $w('#downloadFolder').onClick(async () => {
42 const folderId = $w('foldersDropdown').value;
43 const downloadUrl = await generateDownloadUrl(folderId);
44
45 $w('#downloadFolderBtn').link = downloadUrl;
46 $w('#downloadingFolderMsg').show();
47 });
48});
49
50async function populateFoldersDropdown() {
51 const folders = await listFolders();
52 const dropdownOptions = folders.map((folder) => {
53 return {
54 label: folder.displayName,
55 value: folder._id
56 };
57 });
58
59 $w('#foldersDropdown').options = dropdownOptions;
60};