在Node.js中删除文件(不取消链接)

时间:2015-09-08 19:02:08

标签: node.js node.js-stream

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

            }
        });
    }
});

}

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

0 个答案:

没有答案