Giter Club home page Giter Club logo

backload's Introduction

Backload

Backload is a professional, full featured server side file handler for ASP.NET (MVC, Web API, Web Forms, HTML) and ASP.NET Core running on Windows, Linux and Mac. It has been developed as part of a commercial product for the aero craft industry. While Backload out of the box handles the client side jQuery File Upload Plugin from blueimp, PlUpload from Moxiecode and Fine Uploader from Widen Enterprises, it can be easily customized to work with any client side plugin.

 

ASP.NET Core support

Updated: Support status for the new ASP.NET Core based project types. More ...

 

Project website

General information, editions and how to get a Pro/Enterprise license: http://backload.org.

 

Current release 2.2.7/2.2.8:

ASP.NET Core developer package (cross-platform)
25 examples for filesystem, database and Azure Blob Storage, including file chunking demos, classic html/aspx demos, server side events, Web Api controller, post processing and more for ASP.NET Core (Windows/Linux/Mac).
Database developer package
25 database storage developer package, including support for Entity Framework, Sql Server FILESTREAMS, Sql Server FileTables, external file data storage, client side plugins, file chunking, classic html/aspx, Web Api and more.
FileSystem developer package
20 filesystem storage developer package, including file chunking demos, classic html/aspx demos, server side events, Web Api controller, post processing and more.
Azure Blob Storage developer package
20 Microsoft Azure Blob Storage developer package, including file chunking demos, classic html/aspx demos, server side events, Web Api controller, post processing and more.

 

Cloud storage

Currently, we are developing the cloud storage feature and we need your help! Tell us the features you really need, how your application will use cloud storage, what cloud provider you prefer, etc. Your feedback will influence the development directly.

 

Highlights

Backload is a feature rich server side component which can be fully customized (declaratively) within the web.config file (resp. a linked config file). Complex storage structures are supported and handled by the component without a single line of code, whether the storage location is the file system or a database. If you want to upload different file types (images, pdfs, doc, etc) content type based subfolders can be configured to automatically store different file types in different sub folders (e.g. /images, /pdfs, /movies, etc).

The zero configuration feature allows quick setups, a default MVC controller is ready to handle incoming requests. For more complex scenarios, where you have to run your own business logic, you can derive from the default controller or call the handler method from your code.

Backload supports cropping and resizing of images. The parameters can be set within the web.config file or by an incoming request from the client. Multiple image manipulation features are implemented. Type conversion is also supported.

Backload can create unique file names (GUIDs). So files cannot be overwritten or, if this is the purpose of using this feature, cannot be accessed from the web without knowledge of the new name. Mapping of the original file name to the new file name and back is also implemented. This feature can be used to send a friendly name back to the client. Generation of client side GUIDs is also supported (seel release 2.0 demos).

Backload has proven its scalability in production with hundreds of thousands uploads a day. Internally it is designed to work asynchronously where possible.

Upload files to Windows Azure cloud storage services from your Azure VM or web role and access the files from anywhere.

 

Features

  • Running on Windows, Linux and Mac OS X (MacOs)
  • Zero configuration: The defaults set up a fully functional server side file upload controller and handler.
  • Declarative configuration: Features will be setup within the web.config or a linked config file.
  • Storage context: Supported locations are file system, UNC shares, database and cloud (next milestone).
  • Object context based locations: Based on the context (e.g. UserX, UserY, ArtistX, ArtistY, HouseA, HouseB) different storage locations can automatically be routed.
  • Content type subfolders: Based on the content type files can automatically be stored in an appropriate subfolder. This feature is fully customizable.
  • Unique file names: Files can be stored with a unique name and also remapped to their original name.
  • Cropping and resizing: This can be setup in the web.config file or in a request from the client.
  • Image type conversion: Images can be converted to a different target type.
  • Thumbnails: Static (stored in a subfolder) or dynamically (created on a request).
  • Large files: Support for chunked file uploads (release 1.3.6) and optimized internal memory usage.
  • Security: Access control with authentication and authorization (roles based).
  • Extensibility (coming release): Dynamically hook in your own extensions. (Multiple extensions for a specific processing step are supported).
  • Eventing: Backloads processing pipeline events enable full control of the request/response data and execution flow.
  • Scalability by asynchronous internal code and asynchronous support for events and extensions.
  • Tracing: Use standard .NET tracing to find proplems during development or log errors in production.
  • CORS: Support for Cross Origin Resource Sharing (release 2.1, current dev).
  • Database storage: Store files in a database, a Sql Server FILESTREAM blob, a Sql Server FileTable or on a related file in the filesystem. (File chunking support for all methods).
  • Cloud storage: Upload files to Windows Azure cloud services and access the files from anywhere.

 

Documentation

General
Setup instructions
Options, settings and enumerations

 

Examples

Note: The following examples may contain depreciated code. The developer package contains more than 20 up-to-date examples.
Example 01: Zero configuration
Example 02: Configuration basics: Using web.config
Example 03: Configuration basics: Using an external config file
Example 04: Using your own controllers
Example 05: Using server side image manipulation features
Example 06: Managing subfolders: Using the object context
Example 07: Managing subfolders: Using the upload context
Example 12: Eventing: Using Backloads server side events
Example 13: Tracing: Use tracing to identify problems and log errors
Example 14: Large files: How to setup file chunking

 

Roadmap

Cloud storage

Cloud storage will mark our next milestone. We start with giving you the basic means storing data in a cloud storage in the same manner Backload provides for the local file system or databases. Then we will support popular cloud storage providers out of the box. Help is much appreciated! Don't hesitate to show us your code.

 

Frequently asked questions

Before posting read the FAQ

 

Licenses and editions

You can get a license for a Professional or Enterprise Edition here: https://www.backload.org/. Or read the FAQ about the different licenses

 

News, releases, plans and more

Follow us on Twitter (just started) @Backload_org

 

Direct contact

For customers and commercial requests only: backload.org [at] gmail [dot] com.

 

License

Backload. (Standard version): Copyright 2017, Steffen Habermehl, License (Standard version): MIT license
Professional and Enterprise (source code) version are available under a commercial license.
Follow us on Twitter: @Backload_org

backload's People

Contributors

blackcity avatar auersberg avatar johnbraden avatar tomrossmann avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.