gpt4 book ai didi

python - 我可以从 aws s3 恢复下载吗?

转载 作者:行者123 更新时间:2023-12-04 02:41:35 25 4
gpt4 key购买 nike

我正在使用 python boto3 库通过蜂窝连接将文件从 s3 下载到 IOT 设备,这通常很慢而且不稳定。

一些文件非常大(250Mb,对于这个场景来说很大)并且网络出现故障并且设备在下载时重新启动。

我想从设备重启时结束的地方继续下载。有什么办法吗?

中止的下载似乎确实在下载时将下载的数据保存在一个临时文件中,因此数据就在那里。

目标是节省数据传输并使下载更具弹性。

我正在使用分段上传,但简历本身并没有发生。

我正在做的是这样的:

s3 = boto.resource('s3')
session = boto.session.Session(region_name='eu-central-1', profile_name=profile)
s3client = session.client( 's3', config=boto.session.Config(signature_version='s3v4'))
MB = 1024 ** 2

config = TransferConfig(
multipart_threshold=10*MB,
num_download_attempts=100)

def upload():
s3client.upload_file(Filename=localfile, Bucket=bucket, Key=key, Config=config)

def download():
s3client.download_file(bucket, key, localfile, Config=config )

# upload from server...
upload()

# .... later, from IOT device
download()

最佳答案

我不相信 boto3 有断点续传的功能。

您可以通过使用远程获取来自己实现一个。使用 head_object 预先查找对象的大小,然后将其分成 N 个范围,单独下载它们(可能并行 K 个 block ,具体取决于您的硬件),将它们作为 block 存储在本地文件系统中,并在所有 block 完成后将它们重新组合到最终下载中。

response = client.get_object(
Bucket='mybucket',
Key='mykey',
Range='bytes=10001-20000'
)

关于python - 我可以从 aws s3 恢复下载吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59125125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com