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

9
我在各处搜索,但未能找到适当的示例,也不够熟练,无法通过文档进行排序。有比我更有知识的人能向我展示如何形成OAUTH 2的CURL命令吗?我只需要OAUTH 2密钥吗?我看到了应用程序密钥、应用程序密钥和oauth 2。如果有影响,我是在使用perl脚本。最接近的代码是这个:
 curl --request PUT --header "Content-Length: `ls -la jonathan.txt | awk '{ print $5}'`" --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?
3个回答

15

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

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

1
看起来/1/files_put/auto不再可用。请尝试使用/2/files/upload代替:https://www.dropbox.com/developers/documentation/http/documentation#files-uploadcurl -X POST https://content.dropboxapi.com/2/files/upload --header "Authorization: Bearer <access token>" --header "Dropbox-API-Arg: {\"path\": \"/Homework/math/Matrices.txt\",\"mode\": \"add\",\"autorename\": true,\"mute\": false}" --header "Content-Type: application/octet-stream" --data-binary @local_file.txt - radicaledward101

9
您需要一个账户的访问令牌. (通常是通过OAuth流程获取,但你也可以通过点击你的Dropbox应用程序页面上的“生成”按钮来获得自己账户的访问令牌。请参见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”,因为无论应用程序类型如何,“auto”总是做正确的事情。

谢谢你的回复。我希望我能够批准两个版本,但由于Hans通过编写代码使其更简单,所以我把它交给了他。不过,我很感激额外的信息。 - CRAIG

3
这里是使用CURL请求上传文件到Dropbox的工作代码。
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"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接