繁体   English   中英

使用 AWS Lambda 更改 s3 存储桶中 xlsx 文件的目录

[英]Change directory of xlsx file in s3 bucket using AWS Lambda

我的代码的目标是每 24 小时更改一个文件的目录(因为每天都会使用另一个 lambda 函数创建一个新文件)。 我想从我的 s3 存储桶中获取当前文件并将其写入同一个 s3 存储桶中的另一个目录。 目前,这行代码不起作用: s3.put_object(Body=response, Bucket=bucket, Key=fileout)我收到此错误: "errorMessage": "Parameter validation failed:\nInvalid type for parameter Body, "errorType": "ParamValidationError"错误是什么意思,需要什么才能将响应存储在历史目录中?

import boto3
import json
s3 = boto3.client('s3')
bucket = "some-bucket"
    
def lambda_handler(event, context):
    file='latest/some_file.xlsx'
    response = s3.get_object(Bucket=bucket, Key=file)
    fileout = 'history/some_file.xlsx'
    s3.put_object(Body=response, Bucket=bucket, Key=fileout)   
    
    return {
        'statusCode': 200,
        'body': json.dumps(data),
    }

代码中的 response 变量存储的不仅仅是实际的 xlsx 文件。 您应该从响应中获取正文并将其传递给 put object 方法。

response = s3.get_object(Bucket=bucket, Key=file)['Body']

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM