0

我在 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");
                });

            }
        });
    }
});

}

这是预期的行为吗?或者我该如何处理

4

0 回答 0