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

Lambda复制S3文件时特殊字符文件名解码问题求助

S3对象键URL解码解决方案

CloudWatch日志里的Active%3D1是Active=1的URL编码结果,%3D对应等号(=)的URL转义字符。要解决这个问题,只需在Lambda代码中对获取到的S3对象键进行URL解码即可。

Python Lambda代码修改示例

from urllib.parse import unquote

def lambda_handler(event, context):
    # 从S3事件中获取编码后的对象键
    encoded_object_key = event['Records'][0]['s3']['object']['key']
    # 解码得到原始路径
    decoded_object_key = unquote(encoded_object_key)
    
    # 后续使用decoded_object_key进行源桶到目标桶的复制操作
    print(f"解码后的完整路径: {decoded_object_key}")

Node.js Lambda代码修改示例

exports.handler = async (event) => {
    const encodedObjectKey = event.Records[0].s3.object.key;
    const decodedObjectKey = decodeURIComponent(encodedObjectKey);
    
    console.log(`解码后的完整路径: ${decodedObjectKey}`);
    // 执行复制逻辑
};

说明

S3触发Lambda事件时,会自动对对象键中的特殊字符(如=、空格、/等)进行URL编码,因此必须解码才能得到与S3控制台显示一致的原始文件夹和文件名。解码后即可正常执行跨桶复制操作,不会再出现路径不匹配的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 11:05:25