我会使用我的 C# 逻辑生成一个具有特殊格式的大文件(几个 TB)并将其保存到 S3。做这个的最好方式是什么。我可以在 EC2 中启动一个节点,然后将大文件写入 EBS,然后使用 S3 .net Clinent 库将文件从 EBS 上传到 S3。
我可以在代码中生成文件内容时流式传输文件内容并将其直接流式传输到 S3,直到专门针对如此大的文件和内存不足问题完成生成。我可以看到此代码对流的帮助,但听起来流应该已经填满了。我显然不能将如此大量的数据放入内存,也不想先将其作为文件保存到磁盘。
PutObjectRequest request = new PutObjectRequest();
request.WithBucketName(BUCKET_NAME);
request.WithKey(S3_KEY);
request.WithInputStream(ms);
s3Client.PutObject(request);
在生成这个大文件并将其流式传输到 S3 时,我最好的选择是什么?