在我的S3存储桶中,每天大约生成60个CSV文件。每个文件的平均大小约为500MB。我想通过lambda函数动态压缩所有这些文件(而不是在Lambda执行中下载文件),并将这些压缩文件上传到另一个s3存储桶中。我遇到了这些解决方案1和2,但我仍然在实现中遇到问题。现在,我正在尝试将CSV文件数据流式传输到一个压缩文件(这个压缩文件是在Lambda tmp目录中创建的),然后上传到s3。但是我在写入压缩文件时收到这个错误信息:[Errno 36] File name too long 这是我的测试Lambda函数,我只是尝试处理一个文件,但在实际情况下,我需要单独压缩50-60个CSV文件:
我想创建一个从S3获取压缩文件(可能包含csv文件列表)、解压缩并上传回s3的lambda。由于lambda受到内存/磁盘大小的限制,我必须将其从s3流式传输并返回到它中。我使用python (boto3),请看下面的代码
count = 0
obj = s3.Object( bucket_name, key )
buffer = io.BytesIO(obj.get()["Body"].read())
print (buffer)
z = zipfile.ZipFile(buffer)
for x in z.filelist:
with z.open(x) as fo
我有一个AWS lambda函数,可以从S3下载,创建压缩文件,然后上传回S3。有时我在日志中看到我的函数调用了两次。我将尝试详细描述。我的lambda函数等待一些参数:
"OutputBucket": 'bucketName',
"OutputKey": 'Zip/result.zip', * just for example
"SourceBucket": 'bucketName',
"SourcePrefix": 'projects/1990/6068/'
我在S3存储桶里放了一堆CSV压缩文件,我想把它们导入到BigQuery中。从文档中看,BQ可以从不同的来源导入gzipped数据。然而,当我配置数据传输作业时,它只允许CSV、JSON、AVRO、PARQUET、ORC文件格式。
将传输作业配置为CSV文件格式并运行后,它会记录以下内容:
Moving data from Amazon S3 to Google Cloud complete: Moved 64 object(s).
Summary: succeeded 0 jobs, failed 0 jobs.
因此,它似乎无论如何都不会查看.gz存档。
有没有一种方便的方法将gz