我们有一个工具,旨在允许供应商向公司交付文件和更新他们的数据库。这些文件(通常是预先确定的类型)使用我们基于web的传输系统,在数据库中为每个文件创建一个新的记录,文件在传递时被移动到一个新的结构中。
我们有一个客户端的新请求,要求使用这个工具可以通过整个目录而不解析每条记录。想象一下,如果客户端制造了数字汽车,那么这个工具允许交付数字螺母和螺栓,并跟踪每个部分,但他们也希望提供一个目录,其中包含创建数字螺栓的所有资产,而无需添加每一项资产作为新记录。
问题是,原始代码没有一个很好的方法来处理这些通入文件夹,并且需要大量重写才能使其工作。显然,我们需要创建一个新的函数,这个函数发生在目录遍历的时间,它取出每个与这个通道匹配的文件夹,然后分别处理它。问题是,所有执行传输、db条目和传递的工具都期望文件,而不是文件夹。
我的想法是:如果我们可以把整个文件夹当作一个文件来处理呢?这样,当前的文件级工具就不需要修改了,我们只需要添加“转换”步骤。在生成清单之后,如果我们使用一个库将它转换为一个“文件”,然后发送它,然后在摄入之后将它转换回一个“文件夹”,那该怎么办?最明显的方法是ZIP文件--而当前的交付工具确实处理ZIP --但这很慢,而且有些交付非常大,这意味着当传输出错时,整个ZIP就会失败。
是否有一种我们可以使用的方法,它不一定压缩文件,而只是以某种方式将目录及其所有内容视为文件,因此不需要重写其余的代码?或者其他我完全错过的东西?
谢谢!
发布于 2018-10-31 20:10:57
你可以用tar文件。Python对它有很好的支持,在*nix环境中使用它们作为备份文件是惯例。对于压缩,您可以使用Gzip (标准库也支持它,流很好)。
https://stackoverflow.com/questions/53090920
复制相似问题