> Portal Navigation: > > - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version. > - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages). > - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`). > - Top-level index of all portals: https://dev.wix.com/docs/llms.txt > - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt # Method name: generateFolderDownloadUrl(folderId: string) # Method package: wixMediaV2 # Method menu location: wixMediaV2 --> folders --> generateFolderDownloadUrl # Method Link: https://dev.wix.com/docs/velo/apis/wix-media-v2/folders/generate-folder-download-url.md # Method Description: Generates a URL for downloading a compressed file containing a specific folder in the Media Manager.
The compressed file can contain sub-folders, and up to 1000 files. # Method Code Examples: *** Note: do not assume any prop names or enum values other than the ones in the example. ## Generate a folder download url (dashboard page code) ```javascript import { folders } from 'wix-media.v2'; async function generateFolderDownloadUrl(folderId) { try { const result = await folders.generateFolderDownloadUrl(folderId); const folderDownloadUrl = result.downloadUrl; return folderDownloadUrl; } catch (error) { console.error(error); // Handle the error } } /* Promise resolves to: * { * "downloadUrl": "https://archive.wixmp.com/archive/wix/b367fe21877e4ef589cde5352a3a04af" * } */ ``` ## Generate a folder download url (export from backend code) ```javascript import { Permissions, webMethod } from 'wix-web-module'; import { folders } from 'wix-media.v2'; import { elevate } from 'wix-auth'; export const generateFolderDownloadUrl = webMethod(Permissions.Anyone, async (folderId) => { try { const elevatedGenerateFolderDownloadUrl = elevate(folders.generateFolderDownloadUrl); const result = await elevatedGenerateFolderDownloadUrl(folderId); const folderDownloadUrl = result.downloadUrl; return folderDownloadUrl; } catch (error) { console.error(error); // Handle the error } }); /* Promise resolves to: * { * "downloadUrl": "https://archive.wixmp.com/archive/wix/b367fe21877e4ef589cde5352a3a04af" * } */ ``` ## Generate a folder download url for a chosen folder ```javascript /*************************************************** * Backend code - generate-folder-download-url.web.js * **************************************************/ import { Permissions, webMethod } from 'wix-web-module'; import { folders } from 'wix-media.v2'; import { elevate } from 'wix-auth'; export const listFolders = webMethod(Permissions.Anyone, async () => { try { const elevatedListFolders = elevate(folders.listFolders) const foldersList = await elevatedListFolders(); return foldersList; } catch (error) { console.error(error); } }); export const generateDownloadUrl = webMethod(Permissions.Anyone, async (folderId) => { try { const elevatedGenerateFolderDownloadUrl = elevate(folders.generateFolderDownloadUrl); const result = await elevatedGenerateFolderDownloadUrl(folderId); const folderDownloadUrl = result.downloadUrl; return folderDownloadUrl; } catch (error) { console.error(error); } }); /************* * Page code * ************/ import { generateDownloadUrl, listFolders } from 'backend/generate-folder-download-url.web'; $w.onReady(async () => { await populateFoldersDropdown(); $w('#downloadFolder').onClick(async () => { const folderId = $w('foldersDropdown').value; const downloadUrl = await generateDownloadUrl(folderId); $w('#downloadFolderBtn').link = downloadUrl; $w('#downloadingFolderMsg').show(); }); }); async function populateFoldersDropdown() { const folders = await listFolders(); const dropdownOptions = folders.map((folder) => { return { label: folder.displayName, value: folder._id }; }); $w('#foldersDropdown').options = dropdownOptions; }; ``` ---