我在Windows环境中使用节点。 当我使用fs.unlink(fileName)时,它似乎工作。
当我进入物理驱动器时执行unlink语句后,我仍然可以看到该文件。
此时如果我尝试手动删除文件,则会抛出拒绝访问权限。如果我尝试创建具有相同名称的文件,则会拒绝访问
但是,仅当我停止执行节点脚本文件时,才会自动从文件系统中删除该文件。
以下是我用来从客户端获取图像并将其上传到Azure Blob存储然后删除文件的代码。
var express = require('express');
var multer = require('multer');
var app = express();
var multerDiskConcept = multer(
{
dest: './uploads/',
rename: function (fieldname, filename) { return filename; }
});
app.post('/testdisk', multerDiskConcept, DiskConcept);
//http://localhost:3000/testdisk
function DiskConcept(request, response)
{
var azure = require('azure-storage');
var blobService = azure.createBlobService(storageName, storageKey);
var async = require('async');
blobService.createContainerIfNotExists('images', { publicAccessLevel: 'blob' }, function (error, result, blobresponse)
{
if (error)
{
response.status(500).send(error);
}
else
{
var imageName = require('node-uuid').v1() + "_" + request.files.images.originalname;
blobService.createBlockBlobFromLocalFile('images', imageName, request.files.images.path, function (error, result, blobimageresponse)
{
if (error)
{
response.status(500).send(error);
}
else
{
var fs = require("fs");
fs.unlink(item.imagepath, function (err)
{
if (err)
response.status(500).send(err);
else
response.status(200).send("Success");
});
}
});
}
});
}
这是预期的行为吗?或者我该如何处理