{"id":177303,"date":"2023-09-13T19:02:37","date_gmt":"2023-09-13T19:02:37","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/external-files-in-media-library\/"},"modified":"2026-05-19T21:08:23","modified_gmt":"2026-05-19T21:08:23","slug":"external-files-in-media-library","status":"publish","type":"plugin","link":"https:\/\/en-gb.wordpress.org\/plugins\/external-files-in-media-library\/","author":13846806,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"5.2.1","stable_tag":"5.2.1","tested":"7.0","requires":"6.2","requires_php":"8.1","requires_plugins":null,"header_name":"External files in Media Library","header_author":"Thomas Zwirner","header_description":"Enables the Media Library to use external files.","assets_banners_color":"f0f0f0","last_updated":"2026-05-19 21:08:23","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/www.thomaszwirner.de","rating":5,"author_block_rating":0,"active_installs":400,"downloads":11495,"num_ratings":4,"support_threads":1,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"threadi","date":"2023-09-13 19:02:24"},"1.0.1":{"tag":"1.0.1","author":"threadi","date":"2023-10-21 15:39:53"},"1.0.2":{"tag":"1.0.2","author":"threadi","date":"2024-01-14 13:45:49"},"1.1.0":{"tag":"1.1.0","author":"threadi","date":"2024-02-04 18:54:52"},"1.1.1":{"tag":"1.1.1","author":"threadi","date":"2024-03-04 22:12:30"},"1.1.2":{"tag":"1.1.2","author":"threadi","date":"2024-03-08 20:49:06"},"1.2.0":{"tag":"1.2.0","author":"threadi","date":"2024-04-14 09:05:57"},"1.2.1":{"tag":"1.2.1","author":"threadi","date":"2024-05-05 12:21:20"},"1.2.2":{"tag":"1.2.2","author":"threadi","date":"2024-07-05 15:00:58"},"1.2.3":{"tag":"1.2.3","author":"threadi","date":"2024-08-17 10:56:30"},"1.3.0":{"tag":"1.3.0","author":"threadi","date":"2024-08-25 15:23:34"},"2.0.0":{"tag":"2.0.0","author":"threadi","date":"2024-11-10 12:11:21"},"2.0.1":{"tag":"2.0.1","author":"threadi","date":"2024-11-11 19:53:45"},"2.0.2":{"tag":"2.0.2","author":"threadi","date":"2024-11-23 14:43:34"},"2.0.4":{"tag":"2.0.4","author":"threadi","date":"2025-01-26 12:26:02"},"3.0.0":{"tag":"3.0.0","author":"threadi","date":"2025-02-15 13:47:58"},"3.1.0":{"tag":"3.1.0","author":"threadi","date":"2025-03-02 14:24:19"},"3.1.1":{"tag":"3.1.1","author":"threadi","date":"2025-04-05 11:31:04"},"4.0.0":{"tag":"4.0.0","author":"threadi","date":"2025-05-14 10:39:59"},"5.0.0":{"tag":"5.0.0","author":"threadi","date":"2026-03-07 11:02:30"},"5.0.1":{"tag":"5.0.1","author":"threadi","date":"2026-03-29 11:52:16"},"5.0.2":{"tag":"5.0.2","author":"threadi","date":"2026-04-13 19:03:14"},"5.0.3":{"tag":"5.0.3","author":"threadi","date":"2026-04-18 11:14:11"},"5.1.0":{"tag":"5.1.0","author":"threadi","date":"2026-04-25 12:52:06"},"5.2.0":{"tag":"5.2.0","author":"threadi","date":"2026-05-06 17:57:31"},"5.2.1":{"tag":"5.2.1","author":"threadi","date":"2026-05-19 21:08:23"}},"upgrade_notice":{"5.0.0":"<p>Major update for the plugin. Please be sure to create a backup before updating.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":4},"assets_icons":{"icon-128x128.jpg":{"filename":"icon-128x128.jpg","revision":3477016,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.jpg":{"filename":"icon-256x256.jpg","revision":3477016,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3477011,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3477015,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3537959,"resolution":false,"location":"assets","locale":"","contents":"{\"landingPage\":\"\\\/wp-admin\\\/media-new.php\",\"preferredVersions\":{\"php\":\"8.4\",\"wp\":\"latest\"},\"phpExtensionBundles\":[\"kitchen-sink\"],\"features\":{\"networking\":true},\"steps\":[{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"external-files-in-media-library\"},\"options\":{\"activate\":true}},{\"step\":\"login\",\"username\":\"admin\",\"password\":\"password\"}]}"}},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.0.2","1.1.0","1.1.1","1.1.2","1.2.0","1.2.1","1.2.2","1.2.3","1.3.0","2.0.0","2.0.1","2.0.2","2.0.4","3.0.0","3.1.0","3.1.1","4.0.0","5.0.0","5.0.1","5.0.2","5.0.3","5.1.0","5.2.0","5.2.1"],"block_files":[],"assets_screenshots":{"screenshot-1-de.png":{"filename":"screenshot-1-de.png","revision":3137003,"resolution":"1","location":"assets","locale":"de","width":1173,"height":443},"screenshot-1.png":{"filename":"screenshot-1.png","revision":3137003,"resolution":"1","location":"assets","locale":"","width":1078,"height":440},"screenshot-2-de.png":{"filename":"screenshot-2-de.png","revision":3137003,"resolution":"2","location":"assets","locale":"de","width":604,"height":292},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3477011,"resolution":"2","location":"assets","locale":"","width":669,"height":455},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3477011,"resolution":"3","location":"assets","locale":"","width":643,"height":235},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3477011,"resolution":"4","location":"assets","locale":"","width":744,"height":296},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3477011,"resolution":"5","location":"assets","locale":"","width":813,"height":328}},"screenshots":{"1":"Field to add external files in Media &gt; Add New Media File.","2":"Dialog to add URLs of external files.","3":"Success message after adding the URL of an external file.","4":"An external file in the media library.","5":"View directories and files in Google Drive."}},"plugin_section":[],"plugin_tags":[230,221948,84,233],"plugin_category":[50],"plugin_contributors":[206820],"plugin_business_model":[],"class_list":["post-177303","plugin","type-plugin","status-publish","hentry","plugin_tags-embed","plugin_tags-external-files","plugin_tags-media","plugin_tags-media-library","plugin_category-media","plugin_contributors-threadi","plugin_committers-threadi"],"banners":{"banner":"https:\/\/ps.w.org\/external-files-in-media-library\/assets\/banner-772x250.jpg?rev=3477015","banner_2x":"https:\/\/ps.w.org\/external-files-in-media-library\/assets\/banner-1544x500.png?rev=3477011","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/external-files-in-media-library\/assets\/icon-128x128.jpg?rev=3477016","icon_2x":"https:\/\/ps.w.org\/external-files-in-media-library\/assets\/icon-256x256.jpg?rev=3477016","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/external-files-in-media-library\/assets\/screenshot-1.png?rev=3137003","caption":"Field to add external files in Media &gt; Add New Media File."},{"src":"https:\/\/ps.w.org\/external-files-in-media-library\/assets\/screenshot-2.png?rev=3477011","caption":"Dialog to add URLs of external files."},{"src":"https:\/\/ps.w.org\/external-files-in-media-library\/assets\/screenshot-3.png?rev=3477011","caption":"Success message after adding the URL of an external file."},{"src":"https:\/\/ps.w.org\/external-files-in-media-library\/assets\/screenshot-4.png?rev=3477011","caption":"An external file in the media library."},{"src":"https:\/\/ps.w.org\/external-files-in-media-library\/assets\/screenshot-5.png?rev=3477011","caption":"View directories and files in Google Drive."}],"raw_content":"<!--section=description-->\n<p>Add one or more files with their URLs under Media &gt; \"Add New Media File\". You can use these external files anywhere the media library is used.<\/p>\n\n<h3>Feature<\/h3>\n\n<p>Embed your files from <em>AWS S3<\/em>, <em>DropBox<\/em>, <em>Google Drive<\/em>, <em>Google Cloud Storage<\/em>, <em>FTP<\/em>, <em>your local hosting<\/em>, another website in your <em>multisite<\/em>, other <em>WordPress REST APIs<\/em>, <em>YouTube<\/em> or many other possible sources. Use them in your preferred editor such as Block Editor, Elementor, Divi, Classic Editor, WpBakery and many more as if the files were stored normally in your media library.<\/p>\n\n<p>Automatically synchronize external directories containing files with your media library at intervals you specify.<\/p>\n\n<p>And even more:<\/p>\n\n<p>\u2705 Add the files with their external dates. This allows you to get the date, helpful for SEO, for example.\n\u2705 Import them as real files instead of just linking to them in your media library. This allows you to import any amount files into your project.\n\u2705 Check their availability (only for HTTP connections) to ensure that the external files are actually available.\n\u2705 Configure, which users in your project are allowed to use the external files options.\n\u2705 Extract ZIP files from any external source into your media library.<\/p>\n\n<h3>Support for other plugins<\/h3>\n\n<p>Use external URLs when importing products via CSV in a <a href=\"https:\/\/wordpress.org\/plugins\/woocommerce\/\">WooCommerce<\/a> store (including access data for these e.g., via an FTP).<\/p>\n\n<p>Add external files on download lists of <a href=\"https:\/\/wordpress.org\/plugins\/download-list-block-with-icons\/\">Download Lists with Icons<\/a>.<\/p>\n\n<p>Sort your external files in a folder of <a href=\"https:\/\/wordpress.org\/plugins\/catfolders\/\">CatFolders<\/a>, <a href=\"https:\/\/wordpress.org\/plugins\/filebird\/\">Filebird<\/a>, <a href=\"https:\/\/wordpress.org\/plugins\/folderly\/\">Folderly<\/a>, <a href=\"https:\/\/wordpress.org\/plugins\/folders\/\">Folders<\/a>, <a href=\"https:\/\/wordpress.org\/plugins\/ifolders\/\">iFolders<\/a>, <a href=\"https:\/\/wordpress.org\/plugins\/media-library-organizer\/\">Media Library Organizer<\/a> or assign them into categories from <a href=\"https:\/\/wpuxsolutions.com\/plugins\/enhanced-media-library\/\">Enhanced Media Library<\/a> and <a href=\"https:\/\/wordpress.org\/plugins\/real-media-library-lite\/\">Real Media Library Lite<\/a>. Also supported: <a href=\"https:\/\/wordpress.org\/plugins\/nextgen-gallery\/\">NextGen Gallery<\/a> and <a href=\"https:\/\/wordpress.org\/plugins\/robo-gallery\/\">Robo Gallery<\/a>. You can import and synchronize them in these plugins.<\/p>\n\n<p>And compatible with <a href=\"https:\/\/github.com\/humanmade\/network-media-library\">Network Media Library<\/a> for use in multisites.<\/p>\n\n<p>And it is also compatible with multilingual plugins like Polylang to translate the media files.<\/p>\n\n<p>The plugin is also compatible with a variety of other plugins not listed here. If, contrary to expectations, something does not work properly, please report it <a href=\"https:\/\/wordpress.org\/support\/plugin\/external-files-in-media-library\/\">in the support forum<\/a>.<\/p>\n\n<h3>REST API<\/h3>\n\n<p>You can manage your external files with REST API requests as documented <a href=\"https:\/\/github.com\/threadi\/external-files-in-media-library\/tree\/master\/docs\/rest.md\">here<\/a>.<\/p>\n\n<h3>Mass-Import<\/h3>\n\n<p>You can import complete directories from any of the supported TCP protocols. Just enter the directory as path to import, and the plugin will import any supported files from it or use the external source tools to navigate to the directory to import.<\/p>\n\n<p>For large directories, there is also an automatically processed queue. You could also use the <a href=\"https:\/\/github.com\/threadi\/external-files-in-media-library\/blob\/master\/docs\/cli.md\">WP CLI<\/a> for large directories.<\/p>\n\n<h3>TCP Protocols<\/h3>\n\n<p>You can use the following TCP-protocols to import external files in your media library:<\/p>\n\n<p>\ud83d\udce1 <code>http:\/\/<\/code>\n\ud83d\udce1 <code>https:\/\/<\/code>\n\ud83d\udce1 <code>ftp:\/\/<\/code>\n\ud83d\udce1 <code>ftps:\/\/<\/code>\n\ud83d\udce1 <code>sftp:\/\/<\/code>\n\ud83d\udce1 <code>ssh:\/\/<\/code>\n\ud83d\udce1 <code>file:\/\/<\/code><\/p>\n\n<p>Some of them require credentials, for http(s) it is optional.<\/p>\n\n<h3>Service plugins<\/h3>\n\n<p>Support for additional platforms as external sources is enabled by additional service plugins. These are now:<\/p>\n\n<p>\u2795 <a href=\"https:\/\/github.com\/threadi\/external-files-from-aws-s3\">External files from AWS S3 in Media Library<\/a> (incl. support for AWS S3, Backplaze S3, Cloudflare R2 and DigitalOcean Spaces)\n\u2795 <a href=\"https:\/\/github.com\/threadi\/external-files-from-google-cloud-storage\">External files from Google Cloud Storage in Media Library<\/a>\n\u2795 <a href=\"https:\/\/github.com\/threadi\/external-files-from-google-drive\">External files from Google Drive in Media Library<\/a>\n\u2795 <a href=\"https:\/\/github.com\/threadi\/external-files-from-webdav\">External files from WebDav in Media Library<\/a> (incl. any WebDav-provider like NextCloud or Seafile)<\/p>\n\n<p>They can be installed manually or in the backend of your WordPress under Media Library &gt; Add External Files.<\/p>\n\n<h3>Use cases<\/h3>\n\n<p>Here are a few examples of how this plugin can help you:<\/p>\n\n<p>\ud83d\udca1 Store particularly large files in a different storage location so that you save storage space on your hosting.\n\ud83d\udca1 Import files that your graphic designer provides you in a shared directory.\n\ud83d\udca1 Automatically synchronize photos from your vacation for display on your website.\n\ud83d\udca1 Use regularly newly generated PDF files from a shared directory for output on your website.\n\ud83d\udca1 Get images for your products from a central directory.<\/p>\n\n<p>Find more <a href=\"https:\/\/plugins.thomaszwirner.de\/en\/external-files-in-the-media-library\/\">here<\/a><\/p>\n\n<h3>ClassicPress<\/h3>\n\n<p>This plugin is compatible with <a href=\"https:\/\/www.classicpress.net\/\">ClassicPress<\/a>.<\/p>\n\n<h3>Repository, documentation and reliability<\/h3>\n\n<p>You find some documentations <a href=\"https:\/\/plugins.thomaszwirner.de\/en\/plugin\/externe-dateien-in-der-mediathek\/\">on this plugin page<\/a> and <a href=\"https:\/\/github.com\/threadi\/external-files-in-media-library\/tree\/master\/docs\">in GitHub<\/a>.<\/p>\n\n<p>The development repository is on <a href=\"https:\/\/github.com\/threadi\/external-files-in-media-library\/\">GitHub<\/a>.<\/p>\n\n<p>Each release of this plugin will only be published if it fulfills the following conditions:<\/p>\n\n<p>\u2705 PHPStan check for possible bugs.\n\u2705 Compliance with WordPress Coding Standards.\n\u2705 No failures during PHP Compatibility check.\n\u2705 No exceptions during PHP Unit Tests.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload \"external-files-in-media-library\" to the \"\/wp-content\/plugins\/\" directory.<\/li>\n<li>Activate the plugin through the \"Plugins\" menu in WordPress.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"why%20do%20you%20need%20to%20install%20additional%20plugins%20for%20some%20sources%3F\"><h3>Why do you need to install additional plugins for some sources?<\/h3><\/dt>\n<dd><p>Two reasons for this:<\/p>\n\n<p>a) Some of the external sources use libraries whose licenses are not permitted in the WordPress repository. For example, the aws\/aws-sdk-php library for AWS uses the Apache License. This is not compatible with GPL.<\/p>\n\n<p>b) With all these libraries, the plugin would be too large to publish in the WordPress repository.<\/p><\/dd>\n<dt id=\"can%20i%20prevent%20other%20wordpress-users%20from%20adding%20external%20files%3F\"><h3>Can I prevent other WordPress-users from adding external files?<\/h3><\/dt>\n<dd><p>Yes, you can select under Settings &gt; \"External files in Media Library\" &gt; Permissions, which roles gets the ability to add or delete external URLs in your media library.<\/p><\/dd>\n<dt id=\"can%20i%20also%20embed%20password-protected%20external%20files%3F\"><h3>Can I also embed password-protected external files?<\/h3><\/dt>\n<dd><p>Yes, but these files are integrated locally and not from the external URL so that your visitors can access them without any problems.<\/p><\/dd>\n<dt id=\"can%20i%20embed%20files%20from%20an%20ftp%3F\"><h3>Can I embed files from an FTP?<\/h3><\/dt>\n<dd><p>Yes, you can <a href=\"https:\/\/github.com\/threadi\/external-files-in-media-library\/blob\/master\/docs\/import\/ftp.md\">add them manually<\/a> or with the FTP-tool in Media &gt; \"Add external files\".<\/p><\/dd>\n<dt id=\"can%20i%20import%20complete%20directories%3F\"><h3>Can I import complete directories?<\/h3><\/dt>\n<dd><p>Yes, you can. Just enter the directory to import or use the tools under Media &gt; \"Add external files\". All files in the directory will be imported.<\/p><\/dd>\n<dt id=\"do%20the%20upload%20size%20limits%20for%20files%20apply%20in%20the%20same%20way%20as%20for%20a%20normally%20uploaded%20file%3F\"><h3>Do the upload size limits for files apply in the same way as for a normally uploaded file?<\/h3><\/dt>\n<dd><p>No, there is no fixed size limit for external files. Limits are determined by the storage space available to you, depending on where the file is stored.<\/p><\/dd>\n<dt id=\"can%20i%20import%20from%20my%20local%20server%3F\"><h3>Can I import from my local server?<\/h3><\/dt>\n<dd><p>Yes, you can. Simply use the Local tool under Media &gt; \"Add external files\" or enter the absolute path with file-protocol,\ne.g.: <code>file:\/\/\/var\/www\/path\/to\/file.png<\/code> - see also <a href=\"https:\/\/github.com\/threadi\/external-files-in-media-library\/blob\/master\/docs\/import\/file.md\">our documentation<\/a>.<\/p><\/dd>\n<dt id=\"can%20i%20import%20external%20product%20images%20for%20woocommerce%3F\"><h3>Can I import external product images for WooCommerce?<\/h3><\/dt>\n<dd><p>Yes, simply enable the setting under Settings &gt; \"External files in Media Library\" &gt; WooCommerce. Add your external URLs\nfor images in the CSV you want to import as it is already possible with WooCommerce. They will be handled as\nexternal files by this plugin. This also allows you to use all protocols supported by the plugin as external source of your files.<\/p><\/dd>\n<dt id=\"is%20there%20a%20wp%20cli%20command%3F\"><h3>Is there a WP CLI command?<\/h3><\/dt>\n<dd><p>Yes, we provide many options on WP CLI, see <a href=\"https:\/\/github.com\/threadi\/external-files-in-media-library\/blob\/master\/docs\/cli.md\">our documentation<\/a>.<\/p><\/dd>\n<dt id=\"google%20tells%20me%20that%20the%20app%20is%20not%20verified%20when%20i%20connect%20google%20drive%20-%20why%3F\"><h3>Google tells me that the app is not verified when I connect Google Drive - why?<\/h3><\/dt>\n<dd><p>According to Google guidelines, an app that is used to connect to the Google Drive API is only checked and confirmed once\nit has 100 active users. As long as less than 100 active users use this function via this plugin, you will always see\nthis message. You can confirm it via \"unsecure\" and still complete the connection of your Google Drive with your\nWordPress website.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>5.2.1<\/h4>\n\n<ul>\n<li>Updated dependencies<\/li>\n<li>Fixed missing crypt library in release<\/li>\n<\/ul>\n\n<p><a href=\"https:\/\/github.com\/threadi\/external-files-in-media-library\/blob\/master\/changelog.md\">older changes<\/a><\/p>","raw_excerpt":"Add external files to your media library to use them in your website. They are integrated as if they were available locally.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/en-gb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/177303","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/en-gb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/en-gb.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/en-gb.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=177303"}],"author":[{"embeddable":true,"href":"https:\/\/en-gb.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/threadi"}],"wp:attachment":[{"href":"https:\/\/en-gb.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=177303"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/en-gb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=177303"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/en-gb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=177303"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/en-gb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=177303"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/en-gb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=177303"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/en-gb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=177303"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}