【发布时间】:2022-02-09 21:43:53
【问题描述】:
我正在使用 wget 使用以下命令从www.backblaze.com url 直接通过管道传输到 S3:
> wget -qO- '<url>' | aws s3 cp - s3://<bucket>/{data_file}
这是一个文件,其大小可以在 10 到 20Gb 之间。我已经使用 Python 脚本运行了几次该过程,其中包含以下内容:
os.system('wget -qO- '<url>' | aws s3 cp - s3://<bucket>/{data_file}')
当该过程完成时,我没有收到任何错误,但是我的 s3 存储桶中的文件大小只有 ~4 或 5Gb,这表明整个文件没有被读取或写入管道。
我不确定这里有什么问题。有没有人使用 wget 来管道大数据文件的经验?
【问题讨论】:
-
当你从 shell 而不是从 python 运行它时它是否正常工作?
-
是的,但我需要通过 Python 运行它
-
我们理解这一点。但是证明它在python 外部 工作,可以确认问题可能不在于您的网络,或者
wget或aws命令,这缩小了可能的问题。老实说,我们通常问这些问题是有充分理由的。 -
Amazon S3 从不添加部分对象。如果生成的 S3 对象不包含正确和完整的数据,那是因为您的客户端没有发送正确的数据(这可能表明读取以某种方式失败)。
-
PS 对这里的故障缺乏可见性正是您不使用 os.system() 运行脚本的原因。也就是说,调整你的命令行,让它向一个文件发出错误,然后你可以查看它,并考虑使用它的详细选项。
标签: python amazon-web-services amazon-s3 wget