0

我会使用我的 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 时,我最好的选择是什么?

4

1 回答 1

1

您当然可以上传任何最大 5 TB 的文件,这是限制。我建议使用流式传输和多部分放置操作。上传一个 1TB 的文件很容易在这个过程中失败,你必须从头开始,在存储时将它分成几部分。您还应该知道,如果您需要修改文件,您需要下载文件、修改文件并重新上传。如果您打算修改文件,我建议您尝试将其拆分为较小的文件。

http://docs.amazonwebservices.com/AmazonS3/latest/dev/UploadingObjects.html

于 2012-07-09T14:46:23.037 回答