新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
在python怎么实现一个自动化接口的文件分片上传功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
创新互联公司专注于企业成都营销网站建设、网站重做改版、平乡网站定制设计、自适应品牌网站建设、HTML5、购物商城网站建设、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为平乡等各大城市提供网站开发制作服务。背景和目的:
利用python request 编写脚本测试公司系统的文件上传接口。前端读取文件的大小然后文件分片传给后端,后端将每一片数据重新组合成文件。大概的过程是:前端将整个文件的md5、size(大小)、name(文件名)、ext(文件后缀)、totalchunk(分片总数)与分片文件的md5、chunk(分片数据),chunkindex(当前分片文件的下标)等传给后台,后台取得这些数据后,通过chunkindex将每一片数据重组,重组完后,进行md5校验,判断文件上传是否成功。我只需要去调用后台的接口,然后判断文件是否上传成功,并且上传没有错误,其他的文件校验就不用去深究。
开发前端使用的是vue,后台使用的是php,要利用python实现对这一接口的调用,那么就先要将前端数据给模拟出来,然后循环去调用接口,将文件分片上传,我的思路大概如下:
1.获取整个文件的大小、名字、后缀、分片总数,定义每片文件的大小:
def __init__(self,data): dat = json.loads(data) self.path = dat['path'] # 获取文件路径 self.CHUNK_SIZE = 1024*1024*2 # 定义每片文件的大小 self.size = os.path.getsize(dat['path']) # 获取文件的大小 self.totalchunk = math.ceil(self.size / self.CHUNK_SIZE) # 获取文件的分片总数 self.ext = os.path.basename(dat['path']).split('.').pop() # 获取文件的后缀 self.name = os.path.basename(dat['path']) # 获取文件的名字