strapi4x4-ftp-provider
v1.0.7
Published
A custom provider for strapi 4x4 to use ftp for the media library plugin
Downloads
4
Readme
Strapi 4x4 FTP Provider
Strapi 4x4 FTP Provider is a plugin that allows you to upload files to an FTP server.
Installation
This plugin can be installed with the following command:
yarn add strapi4x4-ftp-provider
or
npm i strapi4x4-ftp-provider
Configuration
Provider Configuration
./config/plugins.js
or ./config/plugins.ts
for TypeScript projects:
module.exports = ({ env }) => ({
upload: {
config: {
provider: "strapi4x4-ftp-provider",
providerOptions: {
host: env("FTP_HOST"),
port: env("FTP_PORT",21),
user: env("FTP_USER"),
password: env("FTP_PASSWORD"),
secure: env.bool("FTP_SECURE", false),
path: env("FTP_BASE_PATH"),
baseUrl: env("FTP_BASE_URL"),
},
},
},
});
Security Middleware Configuration
Due to the default settings in the Strapi Security Middleware you will need to modify the contentSecurityPolicy
settings to properly see thumbnail previews in the Media Library. You should replace strapi::security
string with the object bellow instead as explained in the middleware configuration documentation.
./config/middlewares.js
module.exports = ({ env }) => [
// ...
{
name: 'strapi::security',
config: {
contentSecurityPolicy: {
useDefaults: true,
directives: {
'connect-src': ["'self'", 'https:'],
'img-src': [
"'self'",
'data:',
'blob:',
env('FTP_BASE_URL'),
],
'media-src': [
"'self'",
'data:',
'blob:',
env('FTP_BASE_URL'),
],
upgradeInsecureRequests: null,
},
},
},
},
// ...
];
Environment variables
You will also need to create a .env file with the following information (replace the values with your own configuration):
FTP_HOST=ftp.example.com
FTP_PORT=21
FTP_USER=username
FTP_PASSWORD=password
FTP_BASE_URL=https://myfiles.example.com
FTP_BASE_PATH=/upload-folder-example/my-v1-files-example
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.
Maximum file size
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
Testing
This plugin has been tested with Strapi v4.8.2 and v4.20.30 and Node.js v18.14.1.
License
This plugin is released under the MIT License.