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

AWS Lambda从S3上传文件至API遇422错误的解决方法

AWS Lambda处理S3上传文件后发送POST请求返回422错误的解决方法

我有一个由指定S3存储桶中对象上传触发的AWS Lambda函数,预期在文件上传后发送携带该文件的POST请求。以下是初始代码:

import json
import os.path
import boto3
import requests

s3Client=boto3.client('s3')

def lambda_handler(event, context):
    bucket=event['Records'][0]['s3']['bucket']['name']
    key=event['Records'][0]['s3']['object']['key']
            
    FILE_NAME = os.path.basename(key)
    TMP_FILE_NAME = '/tmp/' +FILE_NAME
    s3Client.download_file(bucket, key,TMP_FILE_NAME)
    
    url = "*****************"

    payload={'approved': 'true',
            '': ''}
    files=[
      ('file',('ori-csv.csv',open(TMP_FILE_NAME,'rb'),'text/csv'))
      ]
    headers = {
      'Accept': 'application/json,application/vnd.api+json;version=1',
      'Content-Type': 'multipart/form-data',#(tried this also 'application/json')
      'Host': '****************',
      'Authorization': 'Bearer *****************'
    }

    
    response = requests.request("POST", url, headers=headers, data=payload, files=files)
    
    print(response)

已正确将requests库导入Lambda,且通过同一API的GET请求测试正常,但在CloudWatch中收到422响应,请问正确的请求头或文件POST方式是什么?


更新:问题已解决

将boto3客户端改为资源后问题解决,以下是正确代码:

s = boto3.resource('s3')
token = 'Bearer ******************'

def lambda_handler(event, context):
  bucket=event['Records'][0]['s3']['bucket']['name']
  key=event['Records'][0]['s3']['object']['key']
    
  print(bucket)
  print(key)
  file = key.split('/')[-1]
  print(file)
  s3_object = s.Object(bucket, key)
  data = s3_object.get()['Body'].read().decode('utf-8')

  with open('/tmp/'+file,'w') as file1:
    file1.write(data)
                  
  url = "**************"
              
  payload = {'approved': 'true'}
  files = [
        ('file',open('/tmp/'+file,'rb') )
          ]
  headers = {
          'Authorization': token
        }
    
  response = requests.request("POST", url, headers=headers, data=payload, files=files)

  print(response)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 03:33:30