00:01
刚才讲到的下载对象get object,它其实是一个简单的获取对象的一个方法,那如果说我们需要用到一些高级接口啊,去做文件下载,特别是文件比较大的,文比较大的啊。呃,那么我们去下载的时候呢,最好是使用下面这个接口,让它能够实现断点续传好文件下载,如果想要用到大文件的断点续传的话。我们最好使用一下另外一个方法,叫做当闹。当那个费用,我们先来写一个文件啊。这个download file也是需要两个东西,第一个是key,第二个是我们输出的文件的路径。好,Output pass。
01:01
来写一下。我们写上response等于。Self点要用到的方法呢,叫做download file。那么首先第一个参数,第一个参数也是bucket bucket,我们等于self.bucket。第二个参数是K。K等于外面传过来的T。第三个第三个参数呢,它不叫output。它叫做d distance pass,但这个参数大家也可以改啊,改成一样的吧。那这叫目标文件路径,也就是你要下载存储的文件路径,跟我们上面的auto pass是一个意思啊。那这样写之后呢,后面就不需要再去写上这么一句话了,他在内部呢,会自动将它存储到这个目标文件当中。这个接口呢,我们其实只是用了一次啊,要注意一下。
02:02
他执行一次,如果你不从试的话。不重事是不会。使用到断点续传的。因为你没有重试嘛,你没有重试的话,就没有断点续传了,因为你就下了一次。呃,如果真正要做断点续传,我们其实还需要加循环,还需要重试几次,这几次的话你可以自己去写。那另外呢,在做这个,呃,这个函数啊,Download file,它在做这个处理的时候是这样的啊,这个下载函数。他会这样子。会自动根据文件大小。来使用简单的下载还是。啊,这个分块下载。
03:00
它会自动根据这个来分,那么它的阈值是什么呢?如果说你小于。如果说你是小于等于20兆的。会使用。简单的下载,就一次性下载下来,如果说你是大于20兆。会使用。断点续传。这个断点续传是首先它是会作为这个分块下载啊,分块下载就一块一块下载,之前下过的,它不会重新重新下载啊,就接着原来没有下载好的接着下载是这个意思。可以做断点续传,但是下面这个函数呢,这这个操作呢,它并没有断点续传。如果说我的文件很大,那么建议大家使用断点续传。我们一般怎么做呢?你执行一次不可以,那我们可以执行多次嘛,所以在官网当中也有一段这样的代码,那我们直接使用。
04:04
循环。这个是多少次呢?需要我们自己去写,我就直接循环用range。看你要执行多少次,比如说我们执行十次。执行十次啊要加串。把我们刚才下载一次的写进去。再写上except exception。这里可以不用return啊,我们直接print吧。把这个错误信息打印出来。还要注意什么呢?上面这个是执行十次,它会重复或者重试十次。就如果说你中间呃,失败了,重试失败啊,就是失败了才会失败了。之后会自动重试。
05:01
对。为。下载的分块继续下载。那么已经下载的分块不会重复下载。是这个意思。当然我们这里是重试十次啊,是重试十次,那么具体的次数的话,那你可以自己根据这个情况来定。那另外呢,我们如果说执行成功在内部呢,会去它会去下载,下载完之后呢,我们可以跳出这个循环,如果你执行三次啊就执行完了,那么我们在执行过程中之后呢,啊,我们就可以break,如果有错误的话,我们重试。好了,这是我们去进行下载,那么这个下载文件的功能写完之后呢,接着我们就来写适度函数。这个函数啊,我把这块复制一下。改一下啊,这是下载文件。
06:04
下面的函数名呢?我们改成download file。那么这个这个地方其实差不多,我们把它复制。函数名字呢,要改一下。当那个file里面,我还是下载这个文件啊嗯,那这里改成det pass。刚才这个output里面已经有PICTURE1了啊,我们改一下写成PICTURE2吧。也就是说等一下我们会取呃这个PICTURE1这个文件去下载,下载完之后呢,放在p2.jbg这个文件里面啊,那么现在P2呢是没有的。P,暂时没有,那没有的话我们要执行好,我们还要到ul当中去加一个路由,将我们的设个函数名拿过来。
07:04
我们将路由复制一下。好,那我们到这边粘贴回车。返回的是OK,因为我们每次返回都是OK啊,主要要看一下我们这个文件是否存在,我们可以看到output里面呢,也有一个P2,双击一下文件是存在的,对不对。至于大文件,如果大家想要做断点续传,对于大文件的话,那么我们推荐大家去使用后面这个接口。好了,这是我们的。呃,下载文件啊,断点续传这款。
我来说两句