gpt4 book ai didi

php - 通过 HTTP API 将大文件上传到 Dropbox

转载 作者:行者123 更新时间:2023-12-02 00:16:09 25 4
gpt4 key购买 nike

我目前正在实现一种将我的网络服务器上的文件上传到我的 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 exampleDropbox API v2 JavaScript SDK .

在高层次上,您将文件拆分成更小的大小(也称为“ block ”),然后按特定顺序将它们传递给 upload_session 机制。上传机制有几个部分需要按以下顺序使用:

  1. 调用/files/upload_session/start .使用结果 session_id作为以下方法中的参数,以便 Dropbox 知道您正在与哪个 session 交互。
  2. 递增地将文件的每个“ block ”传递给 /files/upload_session/append_v2 .需要注意的几件事:

    • 第一个 调用将返回 cursor ,用于按特定顺序遍历文件的 block 。它在每次连续调用此方法时作为参数传递(光标在每次响应时更新)。
    • 最终 调用必须包含属性 "close": true , 关闭 session 以便上传。
  3. 通过决赛 cursor (和 commit 信息)到 /files/upload_session/finish .如果您在响应中看到新的文件元数据,那么您做到了!!

关于php - 通过 HTTP API 将大文件上传到 Dropbox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56916747/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com