我与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
暂无答案!
目前还没有任何答案,快来回答吧!