【问题标题】:Best strategy to upload multiple files to Google Drive via Javascript API通过 Javascript API 将多个文件上传到 Google Drive 的最佳策略
【发布时间】:2016-12-09 02:29:32
【问题描述】:

我正在处理一个需要通过 API 将多个文件上传到 Google Drive 的项目。文件的数量可以是几十个,它们的大小可以是几兆。

我的问题是:将文件一个接一个地发送到 Google Drive 是更好的策略,还是应该并行发送一堆文件? Google Drive 是并行化请求还是仅按顺序逐一执行它们?是否有任何文档描述了这种行为?

提前致谢!

【问题讨论】:

  • stackoverflow.com/questions/10311969/… 我想说,你可以并行上传它们,它只会从你的配额中扣除。但我不是专家,所以发表评论。
  • @Tschallacka 谢谢,但我的问题主要与完成所需的时间有关。我假设配额的处理方式相同。
  • 好吧,只有一种方法可以找出答案,那就是简单地以并行和顺序进行并测量时间。我建议你使用网络工作者来获得真正的并行。
  • @Tschallacka 你是对的,我已经做到了,但我得到的结果不一致(可能是由于我自己的互联网连接)所以我试图得到一个有点官方的答案。一般来说,有时,对于少量文件,并行处理是件好事。

标签: google-drive-api


【解决方案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 端排队。

【讨论】:

  • 您指的是403 作为上传速率限制,对吧?它在任何地方都有记录吗?
【解决方案2】:

没有一种“最佳策略”。这取决于您想在应用程序中实现什么。 Google Drive 可以处理串行或并行上传,但请记住,对于发送多个请求的速度存在未记录的限制。如果发送速度过快,则会遇到“304 速率限制”错误,这是 Google 的说法“放慢速度,否则我们会将其视为 DoS 攻击”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-11
    • 2020-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多