loopback-component-storage/example/upload.js

79 lines
2.5 KiB
JavaScript
Raw Normal View History

2014-01-14 18:39:02 +00:00
var StorageService = require('../').StorageService;
var express = require('express');
var app = express();
app.configure(function () {
2014-01-24 17:44:58 +00:00
app.set('port', process.env.PORT || 3001);
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.use(express.favicon());
// app.use(express.logger('dev'));
app.use(express.methodOverride());
app.use(app.router);
});
2013-07-10 20:17:51 +00:00
// Create the container
var mkdirp = require('mkdirp');
mkdirp.sync('/tmp/storage/con1');
var handler = new StorageService({provider: 'filesystem', root: '/tmp/storage'});
app.get('/', function (req, res, next) {
2014-01-24 17:44:58 +00:00
res.setHeader('Content-Type', 'text/html');
var form = "<html><body><h1>Storage Service Demo</h1>" +
"<a href='/download'>List all containers</a><p>" +
"Upload to container con1: <p>" +
"<form method='POST' enctype='multipart/form-data' action='/upload/con1'>"
+ "File to upload: <input type=file name=uploadedFiles multiple=true><br>"
+ "Notes about the file: <input type=text name=note><br>"
+ "<input type=submit value=Upload></form>" +
"</body></html>";
res.send(form);
res.end();
});
app.post('/upload/:container', function (req, res, next) {
2014-01-24 17:44:58 +00:00
handler.upload(req, res, function (err, result) {
if (!err) {
res.setHeader('Content-Type', 'application/json');
res.send(200, result);
} else {
res.send(500, err);
}
});
});
app.get('/download', function (req, res, next) {
2014-01-24 17:44:58 +00:00
handler.getContainers(function (err, containers) {
var html = "<html><body><h1>Containers</h1><ul>";
containers.forEach(function (f) {
html += "<li><a href='/download/" + f.name + "'>" + f.name + "</a></li>"
});
2014-01-24 17:44:58 +00:00
html += "</ul><p><a href='/'>Home</a></p></body></html>";
res.send(200, html);
});
});
app.get('/download/:container', function (req, res, next) {
2014-01-24 17:44:58 +00:00
handler.getFiles(req.params.container, function (err, files) {
var html = "<html><body><h1>Files in container " + req.params.container + "</h1><ul>";
files.forEach(function (f) {
html += "<li><a href='/download/" + f.container + "/" + f.name + "'>" + f.container + "/" + f.name + "</a></li>"
});
2014-01-24 17:44:58 +00:00
html += "</ul><p><a href='/'>Home</a></p></body></html>";
res.send(200, html);
});
});
app.get('/download/:container/:file', function (req, res, next) {
2014-01-27 16:42:29 +00:00
handler.download(req.params.container, req.params.file, res, function (err, result) {
2014-01-24 17:44:58 +00:00
if (err) {
res.send(500, err);
}
});
});
2013-06-27 20:50:57 +00:00
app.listen(app.get('port'));
console.log('http://127.0.0.1:' + app.get('port'));