You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用azcopy-node上传本地TXT至Azure存储账号遇问题求助

解决azcopy-node上传Azure存储报错问题及替代方案

一、azcopy-node报错分析与修复

1. 第一个错误:azcopy is not a constructor

该错误是因为导入的类名不正确,当前@azure-tools/azcopy-node的正确实例化类为AzCopyClient,而非AzCopy。

2. 第二个错误:TypeError: Cannot read properties of undefined (reading 'fromTo')

错误源于copy方法的参数格式错误——它需要接收一个配置对象,而非直接传入两个路径字符串。另外,azcopy-node本质是封装了AzCopy命令行工具,需确保你的系统已安装AzCopy并将其添加到环境变量PATH中。

修复后的azcopy-node代码示例

const { AzCopyClient } = require("@azure-tools/azcopy-node");
const client = new AzCopyClient();

async function uploadFile() {
    try {
        await client.copy({
            source: __dirname + "/../../auto_load_event/1239.txt",
            destination: "https://mystorage.blob.core.windows.net/container/1239.txt",
            // 验证方式二选一:使用SAS令牌或自行生成签名后的地址
            destinationSAS: "your-sas-token"
        });
        console.log("文件上传成功");
    } catch (err) {
        console.error("上传失败:", err);
    }
}

uploadFile();

二、更优的文件传输方案:使用Azure官方Storage Blob SDK

azcopy-node属于第三方封装库,稳定性和维护性不如Azure官方提供的@azure/storage-blob SDK。该SDK无需依赖外部命令行工具,API设计清晰,支持更多高级特性。

步骤1:安装依赖

npm install @azure/storage-blob

步骤2:上传代码示例

const { BlobServiceClient } = require("@azure/storage-blob");

async function uploadToBlobStorage() {
    // 存储账户信息
    const accountName = "myaccount";
    const accountKey = "mykey";
    const containerName = "container";
    const localFilePath = __dirname + "/../../auto_load_event/1239.txt";
    const blobName = "1239.txt";

    // 初始化Blob服务客户端
    const blobServiceClient = BlobServiceClient.fromConnectionString(
        `DefaultEndpointsProtocol=https;AccountName=${accountName};AccountKey=${accountKey};EndpointSuffix=core.windows.net`
    );

    // 获取容器客户端与Blob客户端
    const containerClient = blobServiceClient.getContainerClient(containerName);
    const blockBlobClient = containerClient.getBlockBlobClient(blobName);

    // 上传本地文件
    try {
        await blockBlobClient.uploadFile(localFilePath);
        console.log("文件上传成功");
    } catch (error) {
        console.error("上传失败:", error);
    }
}

uploadToBlobStorage();

该方案优势

  • 官方维护,兼容性和稳定性更强
  • 无需额外安装AzCopy命令行工具
  • 支持断点续传、进度监听、批量操作等高级功能
  • API文档完善,问题排查更便捷

内容的提问来源于stack exchange,提问作者Khakovs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 04:55:27