通过Dropbox Api和curl上传zip文件

时间:2019-04-20 18:47:04

标签: curl zip command-line-interface dropbox-api

我正在尝试使用上载.zip文件

卷曲请求:

curl -X POST https://content.dropboxapi.com/2/files/upload \
--header "Authorization: Bearer <Access Token>" \
--header "Dropbox-API-Arg: {\"path\": \"/upload.zip\"}" \
--header "Content-Type: application/octet-stream" \
--data-binary @/upload.zip

上传已完成,没有错误。从另一台设备(Ubuntu服务器)的下载也已完成。但是,当我尝试解压缩时,出现以下错误:

Archive:  upload.zip
  End-of-central-directory signature not found.  Either this file is not
  a zipfile, or it constitutes one disk of a multi-part archive.  In the
  latter case the central directory and zipfile comment will be found on
  the last disk(s) of this archive.
unzip:  cannot find zipfile directory in one of upload.zip or
        upload.zip.zip, and cannot find upload.zip.ZIP, period.

我猜我的卷曲上传配置中有些不正确。可能有一些特殊的配置可以上传和下载.zip文件。

我做错了什么?如何以正确的方式通过dropbox api上传.zip文件?

1 个答案:

答案 0 :(得分:0)

一天后,我发现了问题所在。 在大多数无法正常工作的情况下,您必须检查代码和语法...

1)文件路径应在引号内

--data-binary @"/upload.zip"

2)下载路径应以斜杠开头:

curl -X POST https://content.dropboxapi.com/2/files/download \
    --header "Authorization: Bearer <Token>" \
    --header "Dropbox-API-Arg: {\"path\": \"/directory/upload.zip\"}" >>upload.zip

通常,检查下载的zip文件是否具有正确的文件大小是个好主意。如果文件大小与本地存储中的文件大小不同,则上传未成功完成。