- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在实现一种将我的网络服务器上的文件上传到我的 Dropbox 应用程序目录的机制。
如 API 文档所述,/upload 端点 ( https://www.dropbox.com/developers/documentation/http/documentation#files-upload ) 接受最大 150MB 的文件。然而,我正在处理可能高达 2GB 大小的图像和视频。
因此我需要使用 upload_session 端点。有一个端点用于启动 session ( https://www.dropbox.com/developers/documentation/http/documentation#files-upload_session-start )、附加数据和完成 session 。
我目前不清楚的是如何准确使用这些端点。我是否必须将服务器上的文件拆分为 150MB 的 block (如何处理视频文件?),然后使用/start 上传第一个 block ,使用/append 上传下一个 block ,使用/finish 上传最后一个?或者我可以只指定文件和 API 以某种方式 (??) 为我进行拆分吗?显然不是,但不知何故我无法理解我应该如何计算、拆分和存储 block 在我的网络服务器上并且不丢失其间的 session ...
非常感谢任何建议或进一步的领先链接。谢谢!
最佳答案
正如 Greg 在评论中提到的,您决定如何管理文件的“ block ”。除了他的 .NET 示例,Dropbox 在 JavaScript 中有一个很好的上传 session 实现 upload example的 Dropbox API v2 JavaScript SDK .
在高层次上,您将文件拆分成更小的大小(也称为“ block ”),然后按特定顺序将它们传递给 upload_session 机制。上传机制有几个部分需要按以下顺序使用:
session_id
作为以下方法中的参数,以便 Dropbox 知道您正在与哪个 session 交互。 递增地将文件的每个“ block ”传递给 /files/upload_session/append_v2 .需要注意的几件事:
cursor
,用于按特定顺序遍历文件的 block 。它在每次连续调用此方法时作为参数传递(光标在每次响应时更新)。 "close": true
, 关闭 session 以便上传。通过决赛 cursor
(和 commit
信息)到 /files/upload_session/finish .如果您在响应中看到新的文件元数据,那么您做到了!!
关于php - 通过 HTTP API 将大文件上传到 Dropbox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56916747/
我是一名优秀的程序员,十分优秀!