使用 AWS S3 和 Lambda 处理大文件
Processing huge files using AWS S3 and Lambda
我正在尝试解密定期到达我们的 s3 的文件 bucket.How 如果文件大小很大(例如 10GB),我可以处理吗,因为 Lambda 的计算资源是有限的。我不确定是否有必要将整个文件下载到 Lambda 中并执行解密,或者是否有其他方法可以分块文件和处理?
编辑:- 此处处理文件包括解密文件和解析每一行并将其写入持久存储,如 SQL 队列或数据库。
您可以在 GetObjectRequest 中设置字节范围以从 S3 对象加载特定范围的字节。
以下例子来自AWS官方文档关于S3 GetObjectAPI:
// Get a range of bytes from an object and print the bytes.
GetObjectRequest rangeObjectRequest = new GetObjectRequest(bucketName, key).withRange(0, 9);
objectPortion = s3Client.getObject(rangeObjectRequest);
System.out.println("Printing bytes retrieved.");
displayTextInputStream(objectPortion.getObjectContent());
有关详细信息,您可以访问此处的文档:
https://docs.aws.amazon.com/AmazonS3/latest/userguide/download-objects.html
我正在尝试解密定期到达我们的 s3 的文件 bucket.How 如果文件大小很大(例如 10GB),我可以处理吗,因为 Lambda 的计算资源是有限的。我不确定是否有必要将整个文件下载到 Lambda 中并执行解密,或者是否有其他方法可以分块文件和处理?
编辑:- 此处处理文件包括解密文件和解析每一行并将其写入持久存储,如 SQL 队列或数据库。
您可以在 GetObjectRequest 中设置字节范围以从 S3 对象加载特定范围的字节。
以下例子来自AWS官方文档关于S3 GetObjectAPI:
// Get a range of bytes from an object and print the bytes.
GetObjectRequest rangeObjectRequest = new GetObjectRequest(bucketName, key).withRange(0, 9);
objectPortion = s3Client.getObject(rangeObjectRequest);
System.out.println("Printing bytes retrieved.");
displayTextInputStream(objectPortion.getObjectContent());
有关详细信息,您可以访问此处的文档: https://docs.aws.amazon.com/AmazonS3/latest/userguide/download-objects.html