我目前正在将我的网络服务器上文件的上传机制实现到我的Dropbox应用程序目录中。
如API文档所述,有/ upload端点( https://www.dropbox.com/developers/documentation/http/documentation#files-upload ),它可以接受最大150MB的文件。 但是,我正在处理的图像和视频的最大大小可能为2GB。
因此,我需要使用upload_session端点。 有一个端点可以启动会话( https://www.dropbox.com/developers/documentation/http/documentation#files-upload_session-start ),以添加数据并完成会话。
我目前不清楚的是如何正确使用这些端点。 我是否必须将服务器上的文件拆分为150MB的块(如何处理视频文件?),然后使用/ start上传第一个块,使用/ append上传下一个块,使用/ finish上传最后一个? 还是可以只指定文件和API(?)来进行拆分? 显然不是,但是我莫名其妙地无法理解应该如何在网络服务器上计算,拆分和存储数据块,而又不会丢失会话之间的会话...
任何建议或进一步的领导联系,不胜感激。 谢谢!
正如Greg在评论中提到的那样,您可以决定如何管理文件的“块”。 除了他的.NET示例之外,Dropbox在Dropbox API v2 JavaScript SDK的JavaScript 上传示例中还具有良好的上传会话实现。
从高层次上讲,您正在将文件拆分为较小的大小(也称为“块”),并将文件按特定顺序传递给upload_session机制。 上载机制包含几个部分,需要按以下顺序使用:
session_id
用作参数,以便Dropbox知道您正在与哪个会话进行交互。 逐步将文件的每个“块”传递到/ files / upload_session / append_v2 。 需要注意的几件事:
cursor
,该cursor
用于以特定顺序遍历文件的块。 在每次对该方法的连续调用中,它将作为参数传递(在每个响应上更新游标)。 "close": true
,它将关闭会话,以便可以将其上载。 将最终cursor
(和commit
信息)传递到/ files / upload_session / finish 。 如果您在响应中看到新的文件元数据,那么就做到了 !