uploadio
v1.2.0
Published
Simple middleware for uploading files.
Downloads
9
Maintainers
Readme
UploadIO
Simple middleware for uploading files.
Install
# With NPM
npm install uploadio
# With Yarn
yarn add uploadio
Usage
When you upload a file, the file will be accessible from req.files.
Example:
You're uploading a file called xxx.jpg
Your input's name field is profileImage:
In your server request, you can access your uploaded file from req.files.profileImage:
router.post('/', function(req, res) {
res.send({files: req.files.profileImage});
});
Using middleware
app.use(fileUpload({
debug: true,
thumbnails: [{
width: 250,
height: 250,
fit: [cover, contain, fill, inside or outside] // option, default cover
}, {
width: 50,
height: 50,
}],
persistFileName: true,
uploadDir: 'uploads/profiles', //Don't add forward slash at the end of path
saveToS3: {
secretAccessKey: 'YOUR-AWS-SECRET-KEY',
accessKeyId: ''YOUR-AWS-ACCESS-KEY',
bucket: 'BUCKET-NAME'
}
}));
// How to get the the uploaded files for further use?
// req.cloudFiles ✓
app.post('/upload', function(req, res, next) {
console.info(req.cloudFiles);
})
Sample output
Uploaded to local disk
{
"files": [
{
"location": "uploads/profiles/download.jpeg",
"key": "download.jpeg",
"thumbnailImageUrls": [
{
"250x250": "uploads/profiles/download_250x250.jpeg"
},
{
"50x50": "uploads/profiles/download_50x50.jpeg"
}
]
},
{
"location": "uploads/profiles/men.png",
"key": "men.png",
"thumbnailImageUrls": [
{
"250x250": "uploads/profiles/men_250x250.png"
},
{
"50x50": "uploads/profiles/men_50x50.png"
}
]
}
]
}
When uploaded to s3
{
"files": [
{
"location": "https://xxx.s3.amazonaws.com/uploads/profiles/download.jpeg",
"key": "uploads/profiles/download.jpeg",
"thumbnailImageUrls": [
{
"250x250": "https://xxx.s3.amazonaws.com/uploads/profiles/download_250x250.jpeg"
},
{
"50x50": "https://xxx.s3.amazonaws.com/uploads/profiles/download_50x50.jpeg"
}
]
},
{
"location": "https://xxx.s3.amazonaws.com/uploads/profiles/men.png",
"key": "uploads/profiles/men.png",
"thumbnailImageUrls": [
{
"250x250": "https://xxx.s3.amazonaws.com/uploads/profiles/men_250x250.png"
},
{
"50x50": "https://xxx.s3.amazonaws.com/uploads/profiles/men_50x50.png"
}
]
}
]
}
APIs
| Name | Default | Usage |
| ------ | ------ |------|
| debug | false or true | debug option to true to see some logging about upload process |
| thumbnails | empty or [] | Should be an array of desired height and width |
| persistFileName | false or true | Random file name ex: 123456789.jpeg, if true actual file name separated by underscore for spaces |
| uploadDir | optional | If provided created directories otherwise uploaded at the root in a director uploads
|
| saveToS3 | optional | If passed the resources will be uploaded to s3. You need to provide secretAccessKey, accessKeyId and bucket name|
| keepExtension | optional | If passed then file extension will be passed value |
| thumbnails: [{width, height, fit}] | how the image should be resized to fit both provided dimensions, one of cover, contain, fill, inside or outside. (optional, default 'cover') | |
| thumbnail option | | REF. https://sharp.pixelplumbing.com/api-resize |