我可以在 Google Drive 中进行原子写入,或者至少不是部分写入吗?

我可以在 Google Drive 中进行原子写入,或者至少不是部分写入吗?

我已经编写了自己的软件来访问“Google Drive”,我发现即使提供了 MIME 框架,如果 HTTP 连接中断,Google 也会很乐意写入部分文件。

我正在使用 API 作为 POST 来“https://www.googleapis.com/upload/drive/v3/files“表示‘uploadType’:‘multipart’,一个“content-type”:“multipart/related”标头和一个格式正确的 MIME 多部分文件。因此,对于 Google 来说,检测文件是否完整是微不足道的,但显然,它并没有这样做。这是微不足道的,因为 MIME 分段上传有一个特定的尾部,如果上传不完整,该尾部将会丢失。

我的问题:

  • 我能做些什么来让 Google 不存储部分文件?也许可以使用 MD5 标头?可以使用内容长度标头?

  • 如果没有,除了我的程序“知道”某个文件上传已部分完成之外,还有其他方法可以检测它(可能是可搜索的元数据)吗?也许是“CHANGES”API?

提前感谢您的时间!

附言:我可以执行“保存为另一个文件名”+“当您确定 Google 拥有完整文件时重命名为正确的文件名”,但这样我会因为延迟而上传一半的速度(是的,我可以进行流水线操作),更糟糕的是,浪费了我稀缺的 API 速率限制的一半。如果没有其他选择……

答案1

这是我的代码中的一个错误。Google 似乎按预期工作。

抱歉造成了噪音,请原谅。

相关内容