angel_file_security 1.1.0

  • README.md
  • Installing
  • Versions
  • 67

file_security

Pub build status

Middleware for securing file uploads.

Supports:

  • Max file sizes
  • Max # of uploaded files
  • Restrict to certain extensions
  • Restrict to certain content types
  • Virus scan uploaded files via VirusTotal*

Your file upload API's can also be protected with throttleRequests from angel_security.

**Note*: See VirusTotal's TOS. They do not allow use of their public API in commercial products. However, you can pay to use their private API.

Usage

import 'package:angel_framework/angel_framework.dart';
import 'package:angel_file_security/angel_file_security.dart';
import 'package:http/http.dart' as http;

Future configureServer(Angel app) async {
  var middleware = restrictFileUploads(
    maxFiles: 3,
    maxFileSize: 2000,
    allowedExtensions: ['.jpg', '.png', '.gif'],
    allowedContentTypes: ['image/jpeg', 'image/png', 'image/gif'],
  );
  
  var virusScanner = new VirusTotalScanner(
    '<your-api-key>',
    new http.Client(),
  );
  
  app
    .chain([middleware, virusScanner.handleRequest])
    .post('/api/upload', (req, res) {
      // Secure...
    });
}

1. Depend on it

Add this to your package's pubspec.yaml file:


dependencies:
  angel_file_security: "^1.1.0"

2. Install it

You can install packages from the command line:

with pub:


$ pub get

Alternatively, your editor might support pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:


import 'package:angel_file_security/angel_file_security.dart';
        
Version Uploaded Documentation Archive
1.1.0 Dec 6, 2017 Go to the documentation of angel_file_security 1.1.0 Download angel_file_security 1.1.0 archive
1.0.1 Mar 29, 2017 Go to the documentation of angel_file_security 1.0.1 Download angel_file_security 1.0.1 archive
1.0.0 Mar 4, 2017 Go to the documentation of angel_file_security 1.0.0 Download angel_file_security 1.0.0 archive
1.1.0-alpha+1 Oct 4, 2017 Go to the documentation of angel_file_security 1.1.0-alpha+1 Download angel_file_security 1.1.0-alpha+1 archive
1.1.0-alpha Oct 4, 2017 Go to the documentation of angel_file_security 1.1.0-alpha Download angel_file_security 1.1.0-alpha archive

Analysis

This feature is new.
We welcome feedback.
More details: scoring.

We analyzed this package, and provided a score, details, and suggestions below.

  • completed on Feb 3, 2018
  • Dart: 2.0.0-dev.20.0
  • pana: 0.10.1

Scores

Popularity:
Describes how popular the package is relative to other packages. [more]
42 / 100
Health:
Code health derived from static analysis. [more]
100 / 100
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
80 / 100
Overall score:
Weighted score of the above. [more]
67

Platforms

Detected platforms: other

Primary library: package:angel_file_security/angel_file_security.dart with components: io, mirrors.

Suggestions

  • Maintain CHANGELOG.md.

    Changelog entries help clients to follow the progress in your code.

  • The description is too short.

    Add more detail about the package, what it does and what is its target use case. Try to write at least 60 characters.

  • Maintain an example.

    Create a short demo in the example/ directory to show how to use this package. Common file name patterns include: main.dart, example.dart or you could also use angel_file_security.dart.

Dependencies

Package Constraint Resolved Available
Direct dependencies
Dart SDK >=1.19.0
angel_framework >=1.1.0-alpha <2.0.0 1.1.0+3
http ^0.11.3 0.11.3+16
Transitive dependencies
angel_http_exception 1.0.0
angel_model 1.0.0
angel_route 2.0.5
async 2.0.3
body_parser 1.0.3
charcode 1.1.1
collection 1.14.5
combinator 1.0.0-beta+7
container 0.1.2
http_parser 3.1.1
http_server 0.9.7
json_god 2.0.0-beta+1
logging 0.11.3+1
matcher 0.12.1+4
merge_map 1.0.0
meta 1.1.2
mime 0.9.6
path 1.5.1
pool 1.3.4
quiver_hashcode 1.0.0
random_string 0.0.1
source_span 1.4.0
stack_trace 1.9.1
string_scanner 1.0.2
tuple 1.0.1
typed_data 1.1.5
Dev dependencies
angel_test ^1.1.0-alpha
angel_validate ^1.0.0
test ^0.12.0
uuid ^0.5.3