首页 > 解决方案 > Nodejs EPERM:不允许对使用 getBlobToLocalFile 下载的文件进行操作

问题描述

我在 nodejs 上使用来自 azure-storage 的 getBlobToLocalFile 方法来下载文件。

import {BlobService, common, ErrorOrResult} from "azure-storage";    

getBlobToLocalFile(container: string, blob: string, localFileName: string,
                           callbackOrOptions:  ErrorOrResult<BlobService.BlobResult> | BlobService.GetBlobRequestOptions,
                           callback?: ErrorOrResult<BlobService.BlobResult>): any;

尝试使用该文件时,会引发以下错误:

错误:EPERM:不允许操作,打开“C:\Work...\downloads\testImage.jpg”

标签: node.jsazure-storage

解决方案


我在我的网站上进行了测试,它适用于以下代码:

var storage = require('azure-storage');
const containerName="container";
const blobName="me.jpg";
const localFileName="aaa.jpg"
var blobService = storage.createBlobService(connectionString);
blobService.getBlobToLocalFile(containerName,blobName,localFileName, function (error) 
{
    if (error) {
        callback(error);
      } 
    else{
    }
})

在此处输入图像描述

您可以参考以下方法进行故障排除:

1.以管理员身份运行节点命令提示符。

2.转到c:/users/{pc name}/,右键单击.yarnrc文件属性并取消隐藏它。

在此处输入图像描述

  1. 清理缓存,npm cache clean然后重试。

推荐阅读