使用 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/