Nic*_*oul 3 dictionary amazon-s3 python-3.x boto3 aws-lambda
在 AWS lambda 中,我使用 boto3 将字符串放入 S3 文件中:
import boto3
s3 = boto3.client('s3')
data = s3.get_object(Bucket=XXX, Key=YYY)
data.put('Body', 'hello')
Run Code Online (Sandbox Code Playgroud)
有人告诉我:
[ERROR] AttributeError: 'dict' object has no attribute 'put'
Run Code Online (Sandbox Code Playgroud)
同样发生data.put('hello')在How to write a file or data to an S3 object using boto3 and with data.put_object:的顶级答案推荐的方法'dict' object has no attribute 'put_object'。
我究竟做错了什么?
相反,阅读效果很好(使用data.get('Body').read().decode('utf-8'))。
put_object是s3对象的方法,而不是数据对象。
这是 Python 3.7 的完整工作示例:
import json
import boto3
s3 = boto3.client('s3')
import logging
logger = logging.getLogger()
logger.setLevel(logging.INFO)
def lambda_handler(event, context):
bucket = 'mybucket'
key = 'id.txt'
id = None
# Write id to S3
s3.put_object(Body='Hello!', Bucket=bucket, Key=key)
# Read id from S3
data = s3.get_object(Bucket=bucket, Key=key)
id = data.get('Body').read().decode('utf-8')
logger.info("Id:" + id)
return {
'statusCode': 200,
'body': json.dumps('Id:' + id)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7632 次 |
| 最近记录: |