1.2.0 • Published 4 years ago

uploadio v1.2.0

Weekly downloads
3
License
ISC
Repository
github
Last release
4 years ago

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

NameDefaultUsage
debugfalse or truedebug option to true to see some logging about upload process
thumbnailsempty or []Should be an array of desired height and width
persistFileNamefalse or trueRandom file name ex: 123456789.jpeg, if true actual file name separated by underscore for spaces
uploadDiroptionalIf provided created directories otherwise uploaded at the root in a director uploads
saveToS3optionalIf passed the resources will be uploaded to s3. You need to provide secretAccessKey, accessKeyId and bucket name
keepExtensionoptionalIf 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 optionREF. https://sharp.pixelplumbing.com/api-resize

Thanks & Credit

Busboy Package AWS SDK Package Image thumbnail

1.2.0

4 years ago

1.1.0

4 years ago

1.0.19

4 years ago

1.0.18

4 years ago

1.0.17

4 years ago

1.0.16

4 years ago

1.0.15

4 years ago

1.0.14

4 years ago

1.0.13

4 years ago

1.0.12

4 years ago

1.0.11

4 years ago

1.0.10

4 years ago

1.0.9

4 years ago

1.0.8

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago