![](/img/trans.png)
[英]AWS Lambda: How to read CSV files in S3 bucket then upload it to another S3 bucket?
[英]How can I upload the csv files from Lambda to an S3 bucket? "[ERROR] KeyError: 'Records' and my lambda function is also not getting triggered by s3
我從 S3 中提取了一個包含多張工作表的 Excel 文件,並將每張工作表轉換為 csv 格式並在將其上傳到另一個 S3 存儲桶之前進行簡單的清理。
到目前為止,這是我的 Lambda 函數代碼,但我不知道如何將每個工作表的 csv 文件上傳到 S3。
另外我想用Nan
更改 excel 文件中的空單元格,但我不知道如何。
更新:我從下面的答案中嘗試了解決方案。 我收到“errorMessage”:“'Records'”,“errorType”:“KeyError”。 我的 lambda 函數也沒有被 s3 觸發。
您可以將文件存儲在 Lambda 的本地文件系統中的/tmp/
目錄中。 有 500MB 的限制,因此一旦您完成這些文件,請刪除它們。
因此,當您創建文件時,請將其放在該目錄中:
with open("/tmp/data%s.csv" %(sheet6.name.replace(" ","")), "w", encoding='utf-8') as file:
然后,您可以使用upload_file(file, bucket, key)
將其上傳到 Amazon S3:
s3.upload_file('/tmp/data1.csv', 'mybucket', 'data1.csv')
這是我用於提取觸發 Lambda 函數的 Bucket 和 Key 的一些代碼:
import urllib
def lambda_handler(event, context):
bucket = event['Records'][0]['s3']['bucket']['name']
key = urllib.parse.unquote_plus(event['Records'][0]['s3']['object']['key'])
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.