临时文件

sqlite删除数据

穿精又带淫゛_ 提交于 2019-12-11 02:29:13
sqlite删除数据 某日, 在使用sqlite的时候发现查询速度极慢, 查看了一下文件大小, sqlite数据库文件已经达到了 22G! 对于一个文件数据库来说, 已经相当致命了,先不说后面如果解决文件过大的问题, 首先手动删除一些文件, 释放一些空间; 本文就释放空间的过程遇到的问题做一个记录 问题一: 删除表后, 数据库文件占用磁盘空间并没有释放 在 drop table ** 之后, 查看文件占用空间大小, 发现并没有变化 是因为sqlite的机制是, 当你删除表后, sqlite会把释放出来的空间, 放到一个空闲列表中, 用于下次你插入数据的时候用, 并不会把空间返还给操作系统 , 很流氓的做法 这时如果想强制释放空间, 需要用 vacuum; 命令 问题二:db or disk is full 当你执行完 vacuum命令后, 满心欢喜的等待释放空间, 结果等了好久, 最后报了一个这个错, 说磁盘或者数据库空间已满; 这是因为 sqlite执行 vacuum命令释放空间的机制, 是需要把数据库文件拷贝到一个临时文件中, 然后再删除;所以需要两倍于 数据库文件大小 的磁盘空间 问题三:Vacuum命令的临时文件目录, 是哪个 磁盘当然是不够用的, 那这时需要挂载一个硬盘了, 可是, 挂载到哪个目录呢? 在上一步执行 vacuum命令的时候, 观察了一下 磁盘使用情况,

使用POI解析Excel

て烟熏妆下的殇ゞ 提交于 2019-12-09 14:45:35
Excel作为一种常用的数据存储格式,在很多项目中都会有相应的导入导出的功能。这篇文章会介绍如何使用Java操作Excel,以及如何解决大文件读写时内存溢出的问题。 1、OpenXML标准 Word、Excel、PPT是Office办公套件中最常用的三个组件。早期的Office套件使用二进制格式,这里面包括以.doc、.xls、.ppt为后缀的文件;直到07这个划时代的版本将基于XML的压缩格式作为默认文件格式,也就是相应以.docx、.xlsx、.pptx为后缀的文件。 这个结合了XML与Zip压缩技术的新文件格式使用的是OpenXML标准。微软从2000年开始酝酿这项技术标准,到2006年申请成为ECMA-376,然后在Office2007中用作默认的文件格式,再到08年成为了ISO / IEC 29500国际标准,后续每两三年就会发布一个新版本。Office的一路凯歌无不彰显微软雄厚的实力。 所以说三流公司做产品,二流公司做平台,一流公司定标准。 微软的官方文档中详细介绍了WordprocessingML(Word)、SpreadsheetML(Excel)、PresentationML(PPT)三个标准,这里主要介绍Excel的部分内容。 首先Excel几个最基础的概念: 一个Excel就是一个工作簿(Workbook) 一个Sheet就是一张表格

MapTask工作机制

限于喜欢 提交于 2019-12-06 02:42:45
(1)Read阶段:MapTask通过用户编写的RecordReader,从输入InputSplit中解析出一个个key/value。 (2)Map阶段:该节点主要是将解析出的key/value交给用户编写map()函数处理,并产生一系列新的key/value。 (3)Collect收集阶段:在用户编写map()函数中,当数据处理完成后,一般会调用OutputCollector.collect()输出结果。在该函数内部,它会将生成的key/value分区(调用Partitioner),并写入一个环形内存缓冲区中。 (4)Spill阶段:即“溢写”,当环形缓冲区满后,MapReduce会将数据写到本地磁盘上,生成一个临时文件。需要注意的是,将数据写入本地磁盘之前,先要对数据进行一次本地排序,并在必要时对数据进行合并、压缩等操作。 溢写阶段详情: 步骤1:利用快速排序算法对缓存区内的数据进行排序,排序方式是,先按照分区编号Partition进行排序,然后按照key进行排序。这样,经过排序后,数据以分区为单位聚集在一起,且同一分区内所有数据按照key有序。 步骤2:按照分区编号由小到大依次将每个分区中的数据写入任务工作目录下的临时文件output/spillN.out(N表示当前溢写次数)中。如果用户设置了Combiner,则写入文件之前,对每个分区中的数据进行一次聚集操作。 步骤3

政企、军工在选择加密软件考察点之三,风奥科技

巧了我就是萌 提交于 2019-12-05 23:23:31
系统是不是全程加密?如何确定文件是否应该加密? 对于透明加密来说,当然应该是全程的。也就是说,应用软件生成的临时文件也应该是密态的。 很多应用软件在编辑数据文件时,都会生成临时文件。广为人知的就是MS Word在编辑doc文档时,会在同目录下出现以“~$”开头的文件和一个以“~”开头并以tmp为后缀的文件。这些临时文件在相应的数据文件被正常关闭后,会被删除。由于这些临时文件也存储有企业的机密数据,因而这些临时文件的保护也就显得非常重要了。 在对供应商进行这一项考查的时候,要特别注意。有些品牌的加密系统,为了给自己图方便,放弃对中间过程的文件进行加密。例如,业界有一个老牌的厂商便采取了这样一种做法:①利用Hook技术拦截程序对文件的打开操作;②把打开的文件隐蔽地解密到一个“秘密”的地方;③在后台把应用程序对数据文件操作指针指向位于“秘密”之处的明文;④在关闭数据文件时,把隐藏的明文加密并替换原有的文件。这样的设计,让用户看起来是能够打开编辑密文,编辑保存后得到的还是密文。但是实际上应用软件真实编辑的对象是一个不加密的明文文件。这种做法,从原理上来说也是可以“忽悠”住一些客户的。但是毕竟纸包不住火,那个“秘密的地方”其实很容易被发现。如果授信节点的User知道了这个“秘密的地方”,完全可以打开密文时到那个“秘密的地方”去获得明文。 透明加密应该只是针对数据文件

微信小程序保存图片到相册

被刻印的时光 ゝ 提交于 2019-12-05 19:51:16
本文链接:https://blog.csdn.net/u013654125/article/details/80500306 先来看小程序中的保存图片到相册的api wx.saveImageToPhotosAlbum({ filePath : "./test.png", //这个只是测试路径,没有效果 success(res) { console.log("success"); }, fail : function(res) { console.log(res); } }) 上面的saveImageToPhotosAlbum的用法是不能获取到文件的,因为filePath在官方的说法是可以是临时文件路径或永久文件路径。 而"filePath : ./test.png"只是一个相对路径(相对小程序项目来说的一个路径),而我们需要的是临时文件路径或永久文件路径。 下面说一下三者的区别: 相对路径:小程序项目中相对的文件路径。 临时文件路径:从网络上下载或其他形式生成的文件,但是只保存在内存中,没有保存到小程序目录中的文件路径。 永久文件路径:小程序项目中文件中的全文件路径。 注:相对路径和永久文件路径可能是同一个文件,只是引用的路径名不一样而已(一个是相对的,一个是绝对的)。 其中临时文件路径我们可以这样获得来保存文件到相册: wx.downloadFile({ url: 'https:

web文件上传

陌路散爱 提交于 2019-12-05 17:36:44
今天在复习Web 的时候,做个一个文件上传的小Demo,发布一篇博客,记录一些笔记要点。和web做上传的一些注意事项。这个Demo 解决了Web上传问题中的以下问题: 1.实现web开发中的文件上传功能,需要完成2个步骤操作: ①在web页面中添加上传输入项 ②在servlet中读取上传文件的数据,并保存到本地盘中。 如何在web页面中添加上传输入项? <input type="file">标签用于在web页面中添加文件上传输入项,设 置文件上传输入项时刻须注意。 1.必须要设置inpu输入项的name属性,否则浏览器将不会发送上传文件的数据. 2.必须把form的enctype属性设置为multipart/form-data,设置该值后,浏览器在上传文件时,将把文件数据附带在http 请求消息体中,并使用MIME协议对上传的文件进行描述,以方便接收方对上传数据进行解析和处理。 DisKFileItemFactory是创建 FileItem 对象的工厂,这个工厂类常用方法: public void setSizeThreshold(int size Threshould) 设置内存缓冲区的大小,默认为10k,当上传文件大于缓冲区大小时,fileupload组件将使用 临时缓存上传文件。 public void (java.io.File.repository) 指定临时文件目录

jsp文件上传原理

感情迁移 提交于 2019-12-05 17:34:45
文件上传的原理,文件上传用到的jar包,文件上传遇到文件编码问题,文件的大小限制, 文件上传 临时文件的设置,文件上传重命名问题,分目录存储上传的文件,多个文件上传时,没有上传内容的问题,上传进度检测。 一、文件上传的原理 1、文件上传的前提: a、form表单的method必须是 post b、form表单的enctype必须是 multipart/form-data (决定了POST请求方式,请求正文的数据类型) 注意:当表单的enctype是multipart/form-data,传统的获取请求参数的方法失效。 请求正文:(MIME协议进行描述的,正文是多部分组成的) -----------------------------7dd32c39803b2 Content-Disposition: form-data; name="username" wzhting -----------------------------7dd32c39803b2 Content-Disposition: form-data; name="f1"; filename="C:\Documents and Settings\wzhting\妗岄潰\a.txt" Content-Type: text/plain aaaaaaaaaaaaaaaaaa -------------------------

tempfile:临时文件系统对象

ぐ巨炮叔叔 提交于 2019-12-04 16:37:01
介绍 想要安全的创建名字唯一的临时文件,以防止被试图破坏应用或窃取数据的人猜出,这很有难度。tempfile模块提供了多个函数来安全创建临时文件系统资源。TemporaryFile函数打开并返回一个未命名的文件,NamedTemporaryFile打开并返回命名文件,SpooledTemporaryFile在将文件写入磁盘之前会先将其保存在内存中,TemporaryDirectory是一个上下文管理器,上下文关闭时会删除这个目录,我们下面来一一介绍 临时文件 import tempfile ''' 如果应用需要临时文件来存储数据,而不需要与其他程序共享这些文件,则应当使用TemporaryFile函数来创建文件。 这个函数会创建一个文件,而且如果平台支持,它会立即断开这个新文件的链接。 这样一来,其他程序就不可能找到或者打开这个文件,因为文件系统表中根本没有这个文件的引用。 对于TemporaryFile函数创建的文件,不论通过调用close函数,还是结合使用上下文管理器API、with语句,关闭文件时都会自动删除这个临时文件 ''' # mode:默认是w+b,二进制形式。这里使用w+,可读可写 with tempfile.TemporaryFile(mode="w+", encoding="utf-8") as tmp: print(tmp) # <tempfile.

本地包含漏洞LFI汇总

三世轮回 提交于 2019-12-04 06:14:21
利用 session upload_progress 利用上传临时文件窗口期 利用环境变量 利用日志 总的来说,一般可以用 session 包含的方式尽量避免用 tmp 竞争的方式…血的教训… session upload_progress 条件:开启 session.upload_progress.enabled ,session 文件路径已知,且其中内容部分可控。 当 session.upload_progress.enabled INI 选项开启时,PHP 能够在每一个文件上传时监测上传进度。 这个信息对上传请求自身并没有什么帮助,但在文件上传时应用可以发送一个POST请求到终端(例如通过XHR)来检查这个状态 当一个上传在处理中,同时 POST 一个与 INI 中设置的 session.upload_progress.name 同名变量时,上传进度可以在 $_SESSION 中获得。 当 PHP 检测到这种POST请求时,它会在 $_SESSION 中添加一组数据, 索引是 session.upload_progress.prefix 与 session.upload_progress.name 连接在一起的值。 php 的 session 文件的保存路径可以在 phpinfo 的 session.save_path 看到。 常见的php-session存放位置: /var

文件上传

匿名 (未验证) 提交于 2019-12-03 00:22:01
1.文件上传是什么 2.文件上传步骤 1.在用户页面中添加上传输入项(客户端页面操作) <input type="file" name="filex"> 2.在服务器端编写文件上传程序 3.上传组件(Apache commons-fileupload)使用过程 (1)创建DiskFileItemFactory对象,设置缓冲区大小和临时文件目录 public DiskFileItemFactory(int sizeThreshold,java.io.File repository) //构造工厂时,指定内存缓冲区大小和临时文件存放位置 public void setSizeThreshold(int sizeThreshold) //设置内存缓冲区大小,默认10k public void setRepository(java.io.File repository) //设置临时文件存放位置,默认 System.getProperty("java.io.tmpdir") *内存缓存区:上传文件时,上传文件的内容优先保存在内存缓冲区中,当 *上传文临时大小超过缓冲区大小,就会在服务器端产生临时文件 *临时文件存放位置:保存超过了内存缓冲区大小上传文件而产生临时文件 *产生临时文件可以通过FileItem的delete方法删除 (2)