A plugin for multi-purpose file upload functionality for Grails 3+ application. This plugin allows uploading & saving files to the following destinations:
- To the local server or the local system.
- To the Amazon S3 storage (can be deleted as well).
The upload APIs are highly customizable, so you can always override the classes or add your own implementation.
Add the following to build.gradle
file of your Grails 3 application
Under repositories
section
maven { url "https://jitpack.io" }
Under dependencies
section
compile "com.wizpanda:multi-file-upload:<version>"
In the application.groovy
file, define your groups & AWS configuration. For example:
fileUpload {
global {
amazon {
accessKey = "EXAMPLE-KEY-ALIAI4VT211NNPSV3YGQ2"
accessSecret = "EXAMPLE-SECRET-803a3E2Ul0HkImA2kLQAyF4ngM3P6St"
}
}
groups {
fooSliderImages {
// Add the service which you want to configure here
service = com.wizpanda.file.service.AmazonS3UploaderService
container = "foo-images"
cacheControlSeconds = 604800 // 1 week
}
}
}
Read docs/aws-access-configuration.md to read how to get the access key & secret for AWS S3.
fileUploadService.save(params.file, "fooSliderImages")
The containers defined in the configuration above i.e. foo-images
are suffixed with environment name for non-production environment.
For example, an S3 container with the name foo-images-development
will be used when running locally. So that container must be there
before.
This means, you don't need to use Grails environments to use the different buckets for different environments.