草庐IT

zip-archive

全部标签

go - 如何使用 Gin 在 HTTP 服务器中动态生成 zip/7z 存档?

我使用Gin创建一个HTTP服务器,我想为用户提供一个动态生成的zip存档。理论上,我可以先在文件系统上生成一个zip文件,然后提供它。但这确实是一种糟糕的方式(在开始下载之前等待5分钟)。我想立即开始将其提供给用户并在生成内容时推送内容。我找到了DataFromReader(example),但在归档完成之前不知道ContentLength。funcDownloadEndpoint(c*gin.Context){...c.DataFromReader(http.StatusOK,ContentLength,ContentType,Body,map[string]string{"Con

http - 在 GO 中重组大块 zip 下载

我正在与Accept-Ranges和Goroutines并行下载一个大的.zip文件。该应用程序使用其Rangeheader发送多个请求,以从URL下载10MB的zip文件block。请求被分成不同的范围作为单独的Goroutines,并将获得的数据写入临时文件。这些文件被命名为1,2,3....packagemainimport("bufio""fmt""io""io/ioutil""log""net/http""os""strconv""sync")varwgsync.WaitGroupfuncmain(){url:="https://path/to/large/zip/file/

go - 从网上获取 zip 文件并在 Go 中解压

如何从Web获取zip存档文件并在Go中解压缩?看起来archive/zip包提供了一组工具来解析压缩文件。但是,为了解压缩压缩文件,我必须使用zip.OpenReader,它将文件名作为字符串。那么如何从Web上获取压缩文件,并将其作为字符串放入上述函数中...?或者我是否必须先获取文件并将其放入我的文件系统的一个目录中,然后再读取它? 最佳答案 看来,为了解压缩一个zip,您需要能够搜索到任意位置。这意味着除非您想做一些花哨的事情,否则它要么需要是本地文件,要么完全在内存中。假设您已经下载了zip并将其保存在[]byte中,您想

go - 将文件添加到 zip 存档而不压缩

在Go中,我们如何在不压缩的情况下将文件添加到zip存档?对于上下文,我跟随一个IBMtutorial创建一个epubzip文件。它显示了以下Python代码:importzipfile,osdefcreate_archive(path='/path/to/our/epub/directory'):'''CreatetheZIParchive.Themimetypemustbethefirstfileinthearchiveanditmustnotbecompressed.'''epub_name='%s.epub'%os.path.basename(path)#TheEPUBmust

directory - Go语言如何检查zip入口是否为目录

我猜以下结构中的某些部分将文件标记为目录。但我找不到相关引用。http://golang.org/pkg/archive/zip/#FileHeader 最佳答案 压缩包的FileHeader您链接到的类型有一个.FileInfo()返回os.FileInfo的方法类型,它本身有一个.IsDir()方法。因此将它们链接在一起,您可以判断zip存档中的文件是否是包含f.FileInfo().IsDir()的目录。例子:packagemainimport("archive/zip""fmt")funcmain(){//Openazipa

string - 使用 Go 的 archive/zip 创建带有 Unicode 文件名的 zip 存档

packagemainimport("archive/zip""fmt""io""os""path/filepath""strings")funcmain(){var(Path=os.Args[1]Name=os.Args[2])File,_:=os.Create(Name)PS:=strings.Split(Path,"\\")PathName:=strings.Join(PS[:len(PS)-1],"\\")os.Chdir(PathName)Path=PS[len(PS)-1]deferFile.Close()Zip:=zip.NewWriter(File)deferZip.C

c - 使用 Go 1.5 buildmode=c-archive 和从 C 链接的 net/http.Server

即将发布的Go1.5附带newbuildmodes它允许导出要从C代码链接和调用的Go符号。我一直在玩弄它,并获得了基本的“Helloworld”示例,但现在我试图链接一个启动net/http.Server的Go库,但它失败了。代码如下所示(it'salsoavailablehere):gohttplib.go:packagemainimport"C"import"net/http"//exportListenAndServefuncListenAndServe(caddr*C.char){addr:=C.GoString(caddr)http.ListenAndServe(addr,

go - Go 中的并行 zip 压缩

我正在尝试从大量中小型文件构建一个zip存档。我希望能够同时执行此操作,因为压缩是CPU密集型的,而且我在多核服务器上运行。此外,我不想将整个存档保存在内存中,因为它可能会变得很大。我的问题是,我是否必须压缩每个文件,然后手动合并所有内容以及zipheader、校验和等?如有任何帮助,我们将不胜感激。 最佳答案 我认为您不能组合zipheader。您可以做的是,运行zip.Writer按顺序,在一个单独的goroutine中,然后为您要读取的每个文件生成一个新的goroutine,并将它们通过管道传输到正在压缩它们的goroutin

zip - 如何解压 io.ReadCloser?

我从http服务获取数据,我想即时解压它。这是我目前的方法:resp,err:=http.Get(url)iferr!=nil{logger.Fatalf("Can'tfatch%sdata.%v",url,err)}logger.Info("Fetcheddatafrom%s",url)content_zipped,err:=ioutil.ReadAll(resp.Body)resp.Body.Close()iferr!=nil{logger.Fatal(err)}zip_reader,err:=zip.NewReader(bytes.NewReader(content_zipped

golang 1.2 : Unzip password protected zip file?

查看最新版本(1.2)zip包-如何解压缩受密码保护的文件(使用7zip,AES-256编码)?我看不到在哪里/如何添加该信息。一个简单的例子会很棒! 最佳答案 archive/zip包似乎只提供基本的压缩功能。我会使用7zip解压使用os/exec包的密码保护的zip文件。在线7-zipuserguide了解7zip的最佳指南是7-zip.chm,它位于Windows的zip文件中commandline.以下代码不是最佳代码,但它向您展示了如何完成工作。使用7zip提取受密码保护的zip的代码funcextractZipWithP