Add logging to genieacs-fs
This commit is contained in:
1 parent
ebff97e795
commit
6eac4e45c0
1 file changed
+13
-5
@@ -21,21 +21,27 @@ import * as url from "url";
|
|||||||
import * as querystring from "querystring";
|
import * as querystring from "querystring";
|
||||||
import { GridFSBucket } from "mongodb";
|
import { GridFSBucket } from "mongodb";
|
||||||
import * as db from "./db";
|
import * as db from "./db";
|
||||||
|
import * as logger from "./logger";
|
||||||
|
|
||||||
export function listener(request, response): void {
|
export function listener(request, response): void {
|
||||||
const urlParts = url.parse(request.url, true);
|
const urlParts = url.parse(request.url, true);
|
||||||
if (request.method === "GET") {
|
if (request.method === "GET") {
|
||||||
const filename = querystring.unescape(urlParts.pathname.substring(1));
|
const filename = querystring.unescape(urlParts.pathname.substring(1));
|
||||||
|
|
||||||
|
const log = {
|
||||||
|
message: "Fetch file",
|
||||||
|
filename: filename,
|
||||||
|
remoteAddress: request.connection.remoteAddress
|
||||||
|
};
|
||||||
|
|
||||||
db.filesCollection.findOne({ _id: filename }, (err, file) => {
|
db.filesCollection.findOne({ _id: filename }, (err, file) => {
|
||||||
if (err) {
|
if (err) throw err;
|
||||||
response.writeHead(500, { Connection: "close" });
|
|
||||||
response.end(`${err.name}: ${err.message}`);
|
|
||||||
throw err;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!file) {
|
if (!file) {
|
||||||
response.writeHead(404);
|
response.writeHead(404);
|
||||||
response.end();
|
response.end();
|
||||||
|
log.message += " not found";
|
||||||
|
logger.accessError(log);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -47,6 +53,8 @@ export function listener(request, response): void {
|
|||||||
const bucket = new GridFSBucket(db.client.db());
|
const bucket = new GridFSBucket(db.client.db());
|
||||||
const downloadStream = bucket.openDownloadStreamByName(filename);
|
const downloadStream = bucket.openDownloadStreamByName(filename);
|
||||||
downloadStream.pipe(response);
|
downloadStream.pipe(response);
|
||||||
|
|
||||||
|
logger.accessInfo(log);
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
response.writeHead(405, { Allow: "GET" });
|
response.writeHead(405, { Allow: "GET" });
|
||||||
|
|||||||
Reference in new issue
Block a user