Search.../

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.

Admin Method

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
fileId
string

File ID.

options
Optional
GenerateFileDownloadUrlOptions

Options to use when generating a file's download URL.

Returns

Return Type:

Promise<
GenerateFileDownloadUrlResponse
>
NAME
TYPE
DESCRIPTION
downloadUrls
Array<
DownloadUrl
>

URL for downloading a specific file in the Media Manager.

Was this helpful?

Generate a file download URL (dashboard page code)

Copy Code
1import { files } from 'wix-media.v2';
2
3/* Sample fileId value: 'd4dde1_dee18c9ada174a818ccf75c50e72c739~mv2.jpg' */
4
5async function myGenerateFileDownloadUrlFunction(fileId) {
6 try {
7 const result = await files.generateFileDownloadUrl(fileId);
8
9 return result;
10 } catch (error) {
11 console.error(error);
12 // Handle the error
13 }
14}
15
16/* 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 */
Generate a file download URL (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 fileId value: 'd4dde1_dee18c9ada174a818ccf75c50e72c739~mv2.jpg'
6
7export const myGenerateFileDownloadUrlFunction = webMethod(Permissions.Anyone, async (fileId) => {
8 try {
9 const elevatedGenerateFileDonwloadUrl = elevate(files.generateFileDownloadUrl)
10 const result = await elevatedGenerateFileDonwloadUrl(fileId);
11
12 return result;
13 } catch (error) {
14 console.error(error);
15 // Handle the error
16 }
17});
18
19/* 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
Generate a file download URL with options

Copy Code
1import { Permissions, webMethod } from 'wix-web-module';
2import { files } from 'wix-media.v2';
3import { elevate } from 'wix-auth';
4
5/* 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 */
15
16export const myGenerateFileDownloadUrlFunction = webMethod(Permissions.Anyone, async (fileId, options) => {
17 try {
18 const elevatedGenerateFileDonwloadUrl = elevate(files.generateFileDownloadUrl)
19 const result = await elevatedGenerateFileDonwloadUrl(fileId, options);
20
21 const url = result.downloadUrls[0].url;
22 return url;
23 } catch (error) {
24 console.error(error);
25 // Handle the error
26 }
27});
28
29/* 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 */