我在 Windows 环境中使用节点。当我使用 fs.unlink(fileName) 时,它似乎可以工作。
在我转到物理驱动器时执行 unlink 语句后,我仍然可以看到该文件。
此时,如果我尝试手动删除文件,则会引发 Access Denied 。或者,如果我尝试创建同名文件,则会收到 Access Denied
但是,仅当我停止执行节点脚本文件时,该文件才会自动从文件系统中删除。
下面是我用来从客户端获取图像并将其上传到 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");
});
}
});
}
});
}
这是预期的行为吗?或者我该如何处理