> 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 # BulkRestoreFilesFromTrashBin # Package: mediaManager # Namespace: FilesService # Method link: https://dev.wix.com/docs/api-reference/assets/media/media-manager/files/bulk-restore-files-from-trash-bin.md ## Permission Scopes: Manage Media Manager: SCOPE.DC-MEDIA.MANAGE-MEDIAMANAGER ## Introduction Restores the specified files from the Media Manager's trash bin, and moves them to their original locations in the Media Manager. --- ## REST API ### Schema ``` Method: bulkRestoreFilesFromTrashBin Description: Restores the specified files from the Media Manager's trash bin, and moves them to their original locations in the Media Manager. URL: https://www.wixapis.com/site-media/v1/bulk/trash-bin/files/restore Method: POST # Note: If the parameter `a.b` is listed under required parameters, `b` is only required if `a` is also present. Required parameters: fileIds Method parameters: param name: fileIds | type: array | description: IDs of the files to restore from the Media Manager's trash bin. You can also specify the files' Wix media URLs. For example, `["wix:image://v1/0abec0_b291a9349a0b4da59067f76287e386fb~mv2.jpg/leon.jpg#originWidth=3024&originHeight=4032"]`. Learn more [about the file GUID parameter](https://dev.wix.com/docs/api-reference/assets/media/media-manager/files/file-id.md). | required: true Return type: BulkRestoreFilesFromTrashBinResponse EMPTY-OBJECT {} ``` ### Examples ### Bulk restore deleted files ```curl curl -X POST \ 'https://www.wixapis.com/site-media/v1/bulk/trash-bin/files/restore' \ -H 'Authorization: ' \ -H 'Content-Type: application/json' \ --data-binary '{ "fileIds": ["4acbb8_7596aeebcf5c41eca01c0d99667ac967.mp3", "3vcbb7_7446aeebcf5c41eca01c0d99665bc866.mp3"] }' ``` --- ## JavaScript SDK ### Schema ``` Method: wixClientAdmin.mediaManager.FilesService.bulkRestoreFilesFromTrashBin(fileIds) Description: Restores the specified files from the Media Manager's trash bin, and moves them to their original locations in the Media Manager. # Note: If the parameter `a.b` is listed under required parameters, `b` is only required if `a` is also present. Required parameters: fileIds Method parameters: param name: fileIds | type: array | description: IDs of the files to restore from the Media Manager's trash bin. You can also pass the files' Wix media URLs. For example, `["wix:image://v1/0abec0_b291a9349a0b4da59067f76287e386fb~mv2.jpg/leon.jpg#originWidth=3024&originHeight=4032"]`. Learn more in the File and Folder GUIDs article. | required: true Return type: PROMISE EMPTY-OBJECT {} ``` ### Examples ### Bulk restores all non-permanently deleted files of chosen types (with $w) This code is an example of a page on which a visitor chooses a media type (or types). All files of that type/those types in which have been (non-permanently) deleted are restored. ```javascript /*********************************************** * Backend code - bulk-restore-files.web.js/ts * **********************************************/ import { Permissions, webMethod } from '@wix/web-methods'; import { files } from '@wix/media'; import { auth } from '@wix/essentials'; export const restoreFiles = webMethod(Permissions.Anyone, async (mediaTypes) => { let idList = [] try { const options = { mediaTypes: mediaTypes }; const elevatedListDeletedFiles = auth.elevate(files.listDeletedFiles) const deletedFiles = await elevatedListDeletedFiles(options); idList = deletedFiles.files.map((file) => { return file._id }); } catch (error) { console.error(error); } try { const elevatedBulkRestoreFilesFromTrashBin = auth.elevate(files.bulkRestoreFilesFromTrashBin); const restoredFiles = await elevatedBulkRestoreFilesFromTrashBin(idList); console.log('Restored Files:', restoredFiles); return restoredFiles; } catch (error) { console.error(error); } }); /************* * Page code * ************/ import { restoreFiles } from 'backend/bulk-restore-files.web'; $w.onReady(() => { $w('#restoreMedia').onClick(async () => { const mediaTypes = [] if ($w('#image').checked) { mediaTypes.push("IMAGE") } if ($w('#video').checked) { mediaTypes.push("VIDEO") } if ($w('#audio').checked) { mediaTypes.push("AUDIO") } if ($w('#document').checked) { mediaTypes.push("DOCUMENT") } if ($w('#vector').checked) { mediaTypes.push("VECTOR") } if ($w('#archive').checked) { mediaTypes.push("ARCHIVE") } if ($w('#model3d').checked) { mediaTypes.push("MODEL3D") } await restoreFiles(mediaTypes); $w('#filesRestoredMsg').show(); setTimeout(() => { $w('#filesRestoredMsg').hide(); }, 5000); }); }); ``` ### Bulk restore deleted files by IDs (with elevated permissions) ```javascript import { files } from '@wix/media'; import { auth } from '@wix/essentials'; /* Sample fileIds value: * [ * 'd4dde1_dee18c9ada174a818ccf75c50e72c739~mv2.jpg', * 'd4dde1_32288e20a5aa4213a52b15426fb27c9f~mv2.png', * 'd4dde1_8dd2bfe6121f43b29ebeaa63988abf54.svg' * ] */ const elevatedBulkRestoreFilesFromTrashBin = auth.elevate(files.bulkRestoreFilesFromTrashBin); async function myBulkRestoreFilesFromTrashBinFunction(fileIds) { try { const restoredFiles = await elevatedBulkRestoreFilesFromTrashBin(fileIds); console.log('Restored Files:', restoredFiles); return restoredFiles; } catch (error) { console.error(error); } } /* Promise resolves to void */ ``` ### Bulk restore deleted files by IDs ```javascript import { files } from '@wix/media'; /* Sample fileIds value: * [ * 'd4dde1_dee18c9ada174a818ccf75c50e72c739~mv2.jpg', * 'd4dde1_32288e20a5aa4213a52b15426fb27c9f~mv2.png', * 'd4dde1_8dd2bfe6121f43b29ebeaa63988abf54.svg' * ] */ async function myBulkRestoreFilesFromTrashBinFunction(fileIds) { try { const restoredFiles = await files.bulkRestoreFilesFromTrashBin(fileIds); console.log('Restored Files:', restoredFiles); return restoredFiles; } catch (error) { console.error(error); } } /* Promise resolves to void */ ``` ### bulkRestoreFilesFromTrashBin (self-hosted) Self-hosted SDK calls require you to [create a client](https://dev.wix.com/docs/sdk/articles/work-with-the-sdk/about-the-wix-client.md). ```javascript import { createClient } from '@wix/sdk'; import { files } from '@wix/media'; // Import the auth strategy for the relevant access type // Import the relevant host module if needed const myWixClient = createClient ({ modules: { files }, // Include the auth strategy and host as relevant }); async function bulkRestoreFilesFromTrashBin(fileIds) { const response = await myWixClient.files.bulkRestoreFilesFromTrashBin(fileIds); }; ``` ---