В настоящее время я работаю над созданием функции сканирования на вирусы.
Что я пытаюсь сделать: когда файл загружается в указанный контейнер хранения больших двоичных объектов, запускается функция Azure.Эта функция сканирует файл на наличие вирусов и, если он очищен, перемещает файл в другой контейнер для хранения больших двоичных объектов.
Я создал функцию Azure, которая запускается при создании большого двоичного объекта (т. Е. При загрузке файла), но я не могу понять, как интегрировать сканирование вирусов в смесь.
Я пытался использовать ClamAV.js , но не смог заставить его работать.Я не уверен, как установить ClamAV (демон), чтобы он мог использоваться функцией Azure, что, вероятно, способствовало тому, что он не работал.Кроме того, я не уверен, как установить пакеты npm (в функции Azure), поэтому мне пришлось загрузить сам файл js из пакета в функцию, а затем импортировать его.Не уверен, что это даже верно ...
Я пытался использовать AttachmentScanner , но я не мог заставить это работать в рамках функции Azure (точнее, я не мог получить функциюотправить запрос POST).
Одна серьезная проблема, с которой я сталкиваюсь, я не думаю, что могу обойти: как использовать пакеты npm в функции Azure?Могу ли я npm установить их где-нибудь?Могу ли я просто загрузить пакет и вручную загрузить файл js в функцию Azure и импортировать его таким образом?
Вот моя попытка использования AttachmentScanner:
module.exports = async function (context, myBlob) {
var req = new XMLHttpRequest();
req.open( "POST", "https://beta.attachmentscanner.com/requests", false );
req.headers({
"authorization": "bearer [OMITTED]",
"content-type": "application/json"
});
req.type("json");
req.send({
"url": context.bindingData.uri //"http://www.attachmentscanner.com/eicar.com"
});
req.end(function (res) {
if (res.error) throw new Error(res.error);
context.log(req.responseText);
});
context.log("JavaScript blob trigger function processed blob \n Name:", context.bindingData.name, "\n Blob Size:", myBlob.length, "Bytes");
context.log("context");
context.log(context);
context.log("myBlob");
context.log(myBlob);
};
, приводящая к ошибке:Exception: ReferenceError: XMLHttpRequest is not defined
С помощью следующей функции я могу обнаружить большой двоичный объект и распечатать информацию о нем:
module.exports = async function (context, myBlob) {
context.log("JavaScript blob trigger function processed blob \n Name:", context.bindingData.name, "\n Blob Size:", myBlob.length, "Bytes");
context.log("context");
context.log(context);
context.log();
context.log("myBlob");
context.log(myBlob);
};
Любая помощь приветствуется!