我正在开发一个项目,该项目需要通过API将多个文件上传到Google云端硬盘。文件数量可以是几十个,其大小可以是几兆字节。
我的问题是:将文件逐个发送到Google云端硬盘是一种更好的策略,还是应该并行发送一堆文件? Google Drive会对请求进行并行化,还是按顺序逐个执行?是否有描述此行为的文档?
提前致谢!
答案 0 :(得分:1)
好的,所以在我看来,无论你是逐个发送文件还是批量发送文件,它们都是逐个实际处理的。
我进行了一项测试,其中我并行上传了1个文件,2个文件,3个文件,4个文件,5个文件和10个文件,并记录了它们所花费的时间。我为每个文件数做了9次,并以秒为单位记录了中位数时间。所有文件实际上都是同一个文件(大小约为3 MB):
结果如下:
1个文件:总共9.6秒 - 每个文件9.6秒
2个文件:总共19.7秒 - 每个文件9.8秒
3个文件:总共26.5秒 - 每个文件8.8秒
4个文件:总共34.1秒 - 每个文件8.5秒
5个文件:总共44.6秒 - 每个文件8.9秒
10个文件:总共84.1秒 - 每个文件8.41秒
最重要的是,无论您发送Google云端硬盘的上传请求数量多少(假设您没有获得403),每个文件所需的时间都是相同的。在我的情况下,每个文件8-9秒。
我猜上传请求在Google端排队。
答案 1 :(得分:0)
没有一个"最佳策略"。这取决于您希望在应用程序中实现的目标。 Google云端硬盘可以处理串行或并行上传,但请记住,对于发送多个请求的速度,没有未记录的限制。如果发送速度过快,您将遇到" 304速率限制"错误,这是谷歌的说法"减速或我们将此视为DoS攻击"。