当我试图测试用python3.7boto3-AWS-SDK编写的lambda函数时,下面的代码行(lambda代码块中的最后一行)遇到了问题。lambda函数删除S3 bucket中的对象,遍历bucket中的每个对象
client.Object(bucket, key).delete()
当我保存并运行代码时,在前面的一行(也是下面lambda函数代码块的最后一行)中出现的错误如下所示。请求帮助。你知道吗
"errorMessage": "expected string or bytes-like object", "errorType": "TypeError"
[Lambda功能代码块]
import boto3
import json
import uuid
import csv
def lambda_handler(event, context):
recordId = str(uuid.uuid4())
print (recordId)
client = boto3.resource(
's3',
region_name='us-east-1',
aws_access_key_id='XXXXXXXXXXXXXXX' ,
aws_secret_access_key='XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
)
bucket = client.Bucket('my_bucket')
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('my_dynamo')
for obj in bucket.objects.all():
key = obj.key
body = obj.get()['Body'].read()
data = body.decode("utf-8")
data1 = data.split('\n')
client.Object(bucket, key).delete()
在上面的代码中,您使用bucket对象来删除。 你需要替换
与
因为bucket名称和key应该是string
我已使用客户端进行删除。不是资源。 这个很好用。你可以试试这个。你知道吗
这是res['Contents']的结构,如果您需要获得任何其他详细信息:
相关问题 更多 >
编程相关推荐