如何解决Boto3 S3 上传大量文件
我正在使用 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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。