boto3 s3上载大量文件

r1wp621o  于 2021-09-08  发布在  Java
关注(0)|答案(0)|浏览(304)

我与teamcity一起使用ci管道,我们的大多数脚本都是用python2.7编写的。我们的一个构建使用python 2.7和boto2编写的部署脚本。不幸的是,一些需要部署的新文件的大小更大,因此构建通常会冻结或失败。请记住,这是一个更大的脚本的一部分,该脚本上载了大量清单等(工作正常)。我在boto3文档中读到,可以在同一脚本中使用boto2和3。
是否可以使用boto3创建单独的boto3连接和s3连接,以便通过多部分上载处理这些较大的文件?
如果可能的话,有人能帮我将这个boto2上传部分转换成一个单独连接的boto3上传吗?

def upload_file(self, details, ttl='259200'):
   startTime = datetime.now()
   initialHash = details[:2]
   if initialHash == "zz":
      initialHash = "ad"
   local_file = os.path.join(overrideStorePath, "files", initialHash, details[2:])

   k = boto.s3.key.Key(self.bucket)

   k.key = self.prefix + remoteStorePath + '/' + details[:2] + '/' + details[2:]

   k.set_metadata('Cache-Control', 'max-age=' + ttl)
   k.set_contents_from_filename(local_file)

   i = self.uploadTrack["i"] + 1
   self.uploadTrack["i"] += 1
   total = self.uploadTrack["total"]
   p = int(100 * i / total)
   self.myprint("Uploaded '{}' : {} of {} :  {}% in {} : {} kb".format(k.name, str(i), str(total), str(p), str(datetime.now() - startTime), str(os.path.getsize(local_file) / 1024)))
   return True

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题