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

AWS SDK复制S3文件时目标前缀显示[Object Object]问题求助

S3文件复制到main-dir/[object object]目录的问题修复

问题根源

你遇到的核心问题是调用copyS3Folder时传入的data是对象类型,当你在模板字符串main-dir/${data}中直接拼接对象时,JavaScript会将对象强制转换为字符串[object Object],最终导致文件被复制到错误的路径。

解决方案

1. 提取data中的具体字符串字段

先确认data的结构,提取其中用于标识目标目录的字符串字段来拼接前缀:

socket.on("createStartUp", async (data) => {
    console.log(data)
    // 示例:假设data包含folderName字段,替换为你实际的字段名
    await copyS3Folder(`group-source`, `main-dir/${data.folderName}`)
    console.log("success!")
})

2. 先调试确认data的类型与结构

如果不确定data的具体结构,在调用前添加日志排查:

socket.on("createStartUp", async (data) => {
    console.log(typeof data, data); // 打印data的类型和完整结构
    // 根据日志结果提取对应字段
    await copyS3Folder(`group-source`, `main-dir/${data.targetField}`)
    console.log("success!")
})

如果data是JSON字符串格式,需要先解析:

socket.on("createStartUp", async (data) => {
    const parsedData = JSON.parse(data);
    await copyS3Folder(`group-source`, `main-dir/${parsedData.targetField}`)
    console.log("success!")
})

额外优化建议

为了避免前缀替换时的意外匹配(比如group-source和group-source-files的混淆),建议给源前缀和目标前缀加上末尾的斜杠:

// 源前缀和目标前缀都添加末尾斜杠
await copyS3Folder(`group-source/`, `main-dir/${data.folderName}/`)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 23:00:03