generateFileDownloadUrl( )
Generates one or more temporary URLs for downloading a specific file in the Media Manager.
Description
The generateFileDownloadUrl()
function returns a Promise that resolves to an array containing download URLs for the assets specified in the options parameter.
To download different assets of the file, use the assetKeys
parameter which generates a download URL for each asset.
If no asset key is specified, it defaults to src
, which generates one download URL in the original file's format and quality.
Use this function to grant external clients access to a private media file. Use the expirationInMinutes
parameter to set the URL expiration time, and the expirationRedirectUrl
parameter to add a redirect URL when the URL expires.
To generate a permanent URL for downloading a compressed file that contains multiple files in the Media Manager, use the generateFilesDownloadUrl()
function.
Since this is a permanent URL, it is less secure. 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 generateFileDownloadUrl(fileId: string, options: GenerateFileDownloadUrlOptions): Promise<GenerateFileDownloadUrlResponse>
generateFileDownloadUrl Parameters
NAME
TYPE
DESCRIPTION
File ID.
Options to use when generating a file's download URL.
Returns
Return Type:
NAME
TYPE
DESCRIPTION
URL for downloading a specific file in the Media Manager.
Was this helpful?
1import { files } from 'wix-media.v2';23/* Sample fileId value: 'd4dde1_dee18c9ada174a818ccf75c50e72c739~mv2.jpg' */45async function myGenerateFileDownloadUrlFunction(fileId) {6 try {7 const result = await files.generateFileDownloadUrl(fileId);89 return result;10 } catch (error) {11 console.error(error);12 // Handle the error13 }14}1516/* Promise resolves to:17 * {18 * "downloadUrls": [19 * {20 * "assetKey": "src",21 * "url": "https://download-files.wixmp.com/media/d4dde1_dee18c9ada174a818ccf75c50e72c739~mv2.jpg?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ1cm46YXBwOmU2NjYzMGU3MTRmMDQ5MGFhZWExZjE0OWIzYjY5ZTMyIiwic3ViIjoidXJuOmFwcDplNjY2MzBlNzE0ZjA0OTBhYWVhMWYxNDliM2I2OWUzMiIsImF1ZCI6WyJ1cm46c2VydmljZTpmaWxlLmRvd25sb2FkIl0sImlhdCI6MTY5MjAyMTMxNSwiZXhwIjoxNjkyMDU3MzI1LCJqdGkiOiJjZTA1MzUxYy1jNDA4LTRlYmMtYWI0OC04MWM0NWJlZDlkM2IiLCJvYmoiOltbeyJwYXRoIjoiL21lZGlhL2Q0ZGRlMV9kZWUxOGM5YWRhMTc0YTgxOGNjZjc1YzUwZTcyYzczOX5tdjIuanBnIn1dXSwiZGlzIjp7ImZpbGVuYW1lIjoibmVvbS1BZGtKLUxncFRyRS11bnNwbGFzaC5qcGciLCJ0eXBlIjoiYXR0YWNobWVudCJ9fQ.HfZiuG7UFavOpgh2T0lVn56oZ9NpLoV3z9Gmnqptt8Y"22 * }23 * ]24 * }25 */
1import { Permissions, webMethod } from 'wix-web-module';2import { files } from 'wix-media.v2';3import { elevate } from 'wix-auth';45// Sample fileId value: 'd4dde1_dee18c9ada174a818ccf75c50e72c739~mv2.jpg'67export const myGenerateFileDownloadUrlFunction = webMethod(Permissions.Anyone, async (fileId) => {8 try {9 const elevatedGenerateFileDonwloadUrl = elevate(files.generateFileDownloadUrl)10 const result = await elevatedGenerateFileDonwloadUrl(fileId);1112 return result;13 } catch (error) {14 console.error(error);15 // Handle the error16 }17});1819/* Promise resolves to:20 * {21 * "downloadUrls": [22 * {23 * "assetKey": "src",24 * "url": "https://download-files.wixmp.com/media/d4dde1_dee18c9ada174a818ccf75c50e72c739~mv2.jpg?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ1cm46YXBwOmU2NjYzMGU3MTRmMDQ5MGFhZWExZjE0OWIzYjY5ZTMyIiwic3ViIjoidXJuOmFwcDplNjY2MzBlNzE0ZjA0OTBhYWVhMWYxNDliM2I2OWUzMiIsImF1ZCI6WyJ1cm46c2VydmljZTpmaWxlLmRvd25sb2FkIl0sImlhdCI6MTY5MjAyMTMxNSwiZXhwIjoxNjkyMDU3MzI1LCJqdGkiOiJjZTA1MzUxYy1jNDA4LTRlYmMtYWI0OC04MWM0NWJlZDlkM2IiLCJvYmoiOltbeyJwYXRoIjoiL21lZGlhL2Q0ZGRlMV9kZWUxOGM5YWRhMTc0YTgxOGNjZjc1YzUwZTcyYzczOX5tdjIuanBnIn1dXSwiZGlzIjp7ImZpbGVuYW1lIjoibmVvbS1BZGtKLUxncFRyRS11bnNwbGFzaC5qcGciLCJ0eXBlIjoiYXR0YWNobWVudCJ9fQ.HfZiuG7UFavOpgh2T0lVn56oZ9NpLoV3z9Gmnqptt8Y"25 * }26 * ]27 * }28 */29
1import { Permissions, webMethod } from 'wix-web-module';2import { files } from 'wix-media.v2';3import { elevate } from 'wix-auth';45/* Sample fileId value: 'd4dde1_dee18c9ada174a818ccf75c50e72c739~mv2.jpg'6 *7 * Sample options value:8 * {9 * assetKeys: ['320kbs.mp3'],10 * downloadFileName: 'MyAudio.mp3',11 * expirationInMinutes: '60',12 * expirationRedirectUrl: 'www.example.com/store'13 * }14 */1516export const myGenerateFileDownloadUrlFunction = webMethod(Permissions.Anyone, async (fileId, options) => {17 try {18 const elevatedGenerateFileDonwloadUrl = elevate(files.generateFileDownloadUrl)19 const result = await elevatedGenerateFileDonwloadUrl(fileId, options);2021 const url = result.downloadUrls[0].url;22 return url;23 } catch (error) {24 console.error(error);25 // Handle the error26 }27});2829/* Promise resolves to:30 * {31 * "downloadUrls": [32 * {33 * "assetKey": "320kbs.mp3",34 * "url": "https://download-files.wixmp.com/mp3/d4dde1_by0oqi7mrlyvhnodnhoywu6rr2egzujz-320.mp3?token=eyJhmHWBeilpRrgQGkzYAMcWQsyoISC4MSuG.eyJpc3MiOiJ1cm46YXBwOmU2NjYzMGU3MTRmMDQ5MGFhZWExZjE0OWIzYjY5ZTMyIiwic3ViIjoidXJuOmFwcDplNjY2MzBlNzE0ZjA0OTBhYWVhMWYxNDliM2I2OWUzMiIsImF1ZCI6WyJ1cm46c2VydmljZTpmaWxlLmRvd25sb2FkIl0sImlhdCI6MTY5MjI3MTQzMCwiZXhwIjoxNjkyMjcxNTYwLCJqdGkiOiJlZmZjZjdmMy1hZTdiLTQwMTUtYmIyZi00ZmE3ZDYzMGVlMTkiLCJvYmoiOltbeyJwYXRoIjoiL21wMy9kNGRkZTFfMjM2YzhlMDJmMTdlNDkyMjhlMjE3N2RjMjlkOWJkNzEtMzIwLm1wMyJ9XV0sInJlZCI6Imh0dHBzOi8vd3d3LmpodS5lZHUvIiwiZGlzIjp7ImZpbGVuYW1lIjoiR29yaWxsYXogLSBGZWVsIEdvb2QgSW5jLm1wMyIsInR5cGUiOiJhdHRhY2htZW50In19.qczf9WH3nz-tZ65D_RE8tzW-7o_cuq3b-oXX7QSYeAw"35 * }36 * ]37 * }38 */