使用 Curl 和 Oauth 2 将文件上传到 DropBox 的 DropBox API PUT 示例

Example of DropBox API PUT using Curl and Oauth 2 to Upload a file to DropBox

我到处搜索,一直找不到合适的例子,而且我不够精通,无法通过文档进行整理。比我知识更多的人可以告诉我如何为 OAUTH 2 形成 CURL 命令吗?是不是我只需要 OAUTH 2 密钥?我看到了应用程序密钥、应用程序机密和 oauth 2。如果重要的话,我会在 perl 脚本中使用它。

我找到的最接近的代码是这样的:

 curl --request PUT --header "Content-Length: `ls -la jonathan.txt | awk '{ print }'`" --header         
 "Content-Type: multipart/mixed" --data-binary "@jonathan.txt" "https://api-    
 content.dropbox.com/1/files_put/dropbox/jonathan.txt?access_token=ABCDEF"

但我不认为那是 OAUTH 2?

您的帐户需要一个访问令牌。 (这通常是通过 OAuth 流程获得的,但您也可以通过单击 Dropbox 应用程序页面上的 "Generate" 按钮为自己的帐户获取一个。请参阅 https://www.dropbox.com/developers/blog/94/generate-an-access-token-for-your-own-account。)

获得访问令牌后,您的 curl 命令应该可以正常工作,但我更喜欢 --header "Authorization:Bearer abc123xyz" 而不是将访问令牌放在查询参数中。另外,删除 Content-Type: multipart/mixed,因为这不是您要发送的内容。

我还推荐 "auto" 而不是 "dropbox,",因为无论应用类型如何,它总是做正确的事情。

如果您有访问令牌(通过应用程序控制台创建):

curl -H "Authorization: Bearer <your token>" https://api-content.dropbox.com/1/files_put/auto/ -T <your file path>

这里是通过 CURL 请求在保管箱中上传文件的工作代码。

curl -X POST https://content.dropboxapi.com/2/files/upload \
  --header "Authorization: Bearer <your token>" \
  --header "Dropbox-API-Arg: {\"path\": \"/file_path.txt\",\"mode\": \"add\",\"autorename\": true,\"mute\": false}" \
  --header "Content-Type: application/octet-stream" \
  --data-binary "@file_path.txt"