A custom provider for strapi 4 to use ftp for the media library plugin
Strapi 4 FTP Provider is a plugin that allows you to upload files to an FTP server.
This plugin can be installed with the following command:
yarn add strapi4-ftp-provider
or
npm i strapi4-ftp-provider
After installing the plugin, you need to create a plugins.js file in the config directory if it doesn't already exist. This file should contain the following information:
1module.exports = ({ env }) => ({
2 upload: {
3 config: {
4 provider: "strapi4-ftp-provider",
5 providerOptions: {
6 host: env("FTP_HOST"),
7 port: env("FTP_PORT"),
8 user: env("FTP_USER"),
9 password: env("FTP_PASSWORD"),
10 secure: env.bool("FTP_SECURE", false),
11 path: env("FTP_BASE_PATH"),
12 baseUrl: env("FTP_BASE_URL"),
13 },
14 },
15 },
16});
You will also need to create a .env file with the following information (replace the values with your own FTP credentials):
1FTP_HOST=ftp.example.com
2FTP_PORT=21
3FTP_USER=username
4FTP_PASSWORD=password
5FTP_BASE_URL=/uploads/
6FTP_BASE_PATH=/path/to/strapi/installation/uploads
Note that FTP_BASE_URL
is the URL where your files will be publicly accessible, and FTP_BASE_PATH
is the absolute path to the directory where your files will be uploaded on the server. Replace /path/to/strapi/installation
with the actual path to your Strapi installation.
Please note that you may need to adjust the maximum file size that can be uploaded. This can be done in the Strapi documentation: plugins/upload#max-file-size
It is also possible that the file size limit is determined by the configuration of your Nginx server: Increase-upload-limit-nginx
This plugin has been tested with Strapi v4.8.2 and Node.js v18.14.1.
This plugin is released under the MIT License.
npm install strapi4-ftp-provider
Check out the available plugin resources that will help you to develop your plugin or provider and get it listed on the marketplace.