【发布时间】:2021-07-12 06:39:35
【问题描述】:
我能够使用类似于here 中看到的 zip 编写器的逻辑来压缩文件。
这会导致在返回的bytes.Buffer 对象中创建一个字节数组 ([]byte)。我想知道是否有任何方法可以将这个“压缩”字节数组上传到一个 API 端点,该端点需要一个“multipart/form-data”请求正文(无需在本地保存)。
补充资料:
我的代码在压缩文件夹时使用了this。我能够使用此逻辑成功地执行带有 zip 文件的 HTTP POST 请求到端点。
但是,不幸的是,这会将压缩文件保存在用户的本地文件系统中。我想尽量避免这种情况:)
【问题讨论】:
-
您的问题是 zip 文件留在文件系统中吗?如果是这样,您可以在上传完成后随时将其删除。或者您可以在操作系统的临时目录中创建 zip 文件并将其留给操作系统自动删除。
-
我想尽量不要让 zip 文件留在文件系统期间 :) 有点像“zip 流”(我认为这是正确的术语)
-
在第二个示例代码中,您可以将
newZipFile, err := os.Create(filename)替换为第一个示例中的buf := new(bytes.Buffer),然后使用buf而不是newZipFile创建编写器,即zipWriter := zip.NewWriter(buf)。跨度>
标签: go zip filesystems gzip