c# - 将 Zip 文件作为流写入 AWS

标签 c# .net amazon-s3

使用 C#,我想在 AWS S3 中创建一个 zip 文件,向其中添加文件条目,然后关闭流。 System.IO.Compression.ZipArchive 可以从 System.IO.Stream 创建。是否可以将可写流放入 S3 存储桶中?我正在使用 .NET SDK FOR S3。

最佳答案

发出请求时,上传到 S3 的对象必须具有已知的大小。由于在流关闭之前不会知道 zip 文件的大小,因此您无法执行您所要求的操作。您必须在本地创建 zip 文件,然后将其上传到 S3。

最接近您所要求的是使用 S3 的分段上传。我将使用 MemoryStream 作为 ZipArchive 的基础流,每次将文件添加到 zip 存档时都会检查 MemoryStream 是否大于 5 MB。如果是从 MemoryStream 中取出字节缓冲区并将新部分上传到 S3。然后清除 MemoryStream 并继续将文件添加到 zip 存档中。

关于c# - 将 Zip 文件作为流写入 AWS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57717195/

相关文章:

c# - 使用 XMLTextReader,我如何知道我在哪个元素上?

c# - 计算随机字符串中的英文单词

c# - 自定义控件或类似控件的 slider

.net - 温莎城堡的延迟加载服务

.net - 使用子文件夹中的程序集

python - 如何将 Boto3 download_file 与 AWS KMS 结合使用?

c# - 使用数字签名签署 XML

c# - 关于C#自动实现属性的问题

java - 通过 Java AWS SDK 检索 S3 对象

python - 如何使用 boto 在亚马逊上获取 key /文件的校验和?