【发布时间】:2021-07-07 21:02:21
【问题描述】:
我正在尝试将一个大型对象写入 AWS S3(例如 25 GB)。
目前我可以通过两种方式让它工作:
- 将内容写入本地磁盘上的文件,然后使用multi-part upload将文件发送到S3
- 将内容写入
MemoryStream,然后使用分段上传将该流发送到 S3
但是,我不喜欢这两种方法,因为我需要为操作保留大量磁盘空间或内存。我在代码中生成这个内容,所以我希望打开一个到 S3 对象的流,并将内容直接生成到该对象。但我不知道如何让它发挥作用。
是否可以在不先将整个对象表示在本地文件或内存中的情况下在 S3 中构建一个海量对象?
(注意:我的问题与this question 非常相似,但该问题没有有用的答案。)
【问题讨论】:
-
打开一个流到大量数据,从流中读取一小块数据,将小块写入另一个流,重复。如果您想要轻松的生活,可能一次只能读/写一个字节; IO 系统的其余部分将缓冲数据,因此您无需对自己的 c# 字节 [] 缓冲区感到时髦
-
@CaiusJard 根据您的评论,我得到了一些工作。我发布了我的解决方案作为这个问题的答案。这对你来说是正确的吗? (从概念上讲,你所说的非常有道理;我只是想知道如何实现它。)
标签: c# .net amazon-web-services amazon-s3 aws-sdk