rclone的Google驱动器后端经常需要使用的功能是能够一次使用多个块上传文件,以加快处理速度。 S3 / B2 / Box / etc支持此功能,因此请求Google云端硬盘似乎很明显。
我能找到的最接近的东西是Google Drive v3 API resumable upload功能。
您可以将其与多个块一起使用。我已经在rclone中使用了此API,但是一次只能使用一个。
仔细阅读文档,我认为它不能一次上传多个块-它要求将块按顺序上传,但是我很高兴被证明是错误的!
要分多个文件上传文件:
- 创建对可恢复会话URI的PUT请求。
- 添加块的 数据发送到请求主体。以256 KB的倍数创建块(256 x 大小为1024字节),除了完成 上传。保持块大小尽可能大,以便上传 高效。
添加以下HTTP标头:
- 内容长度。设置为当前块中的字节数。
- 内容范围:设置为显示要上传的文件中的哪些字节。 例如,内容范围:字节0-524287 / 2000000表示您 在2,000,000字节中上传前524,288字节(256 x 1024 x 2) 文件。
- 发送请求,并处理响应。
如果上传请求被中断,或者您收到5xx 响应,请按照恢复中断的上传中的步骤进行操作。
- 对文件中每个剩余的块重复步骤1到4。使用 响应中的范围标头,以确定从下一个位置开始 块。不要假设服务器收到了所有发送的字节 先前的请求。
整个文件上传完成后,您会收到200 OK或201 创建的响应以及与 资源。
如果该API无法做到这一点,那么还有另外一种可以做到吗?