将Linux(CLI)上的文件上传到Dropbox(通过bash/sh)?

Rog*_*ger 17 linux bash curl dropbox-api

我需要通过cron(每小时)将文件保存(并覆盖)到我的Dropbox帐户.该文件需要存储在预定义的位置(与其他一些用户共享).

我已经看到了创建一个Dropbox App,但创建自己的Dropbox文件夹的可能性.

还看了一下,Dropbox Saver但对于浏览器而言似乎.

我在想(希望)超轻量级的东西,很长的路线CURL,所以我不需要安装库.只需一个简单的sh脚本就可以了.我只需要PUT文件(覆盖),不需要读取(GET)它.

是通过Dropbox 开发人员API文档,但有点丢失.

有人提示吗?

Gre*_*reg 24

首先,由于您需要访问现有的共享文件夹,请注册具有"Full Dropbox"访问权限的"Dropbox API"应用程序:

https://www.dropbox.com/developers/apps/create

然后,为您的应用获取帐户的访问令牌.最简单的方法是使用应用页面上的"生成"按钮,您将在创建应用后发送该按钮.它也可以通过App Console访问.

然后,您可以通过curl此示例中所示上传到指定的路径:

这会将文件从matrices.txt当前文件夹中的本地路径/Homework/math/Matrices.txt上载到Dropbox帐户,并返回上载文件的元数据:

echo "some content here" > matrices.txt

curl -X POST https://content.dropboxapi.com/2/files/upload \
    --header "Authorization: Bearer <ACCESS_TOKEN>" \
    --header "Dropbox-API-Arg: {\"path\": \"/Homework/math/Matrices.txt\"}" \
    --header "Content-Type: application/octet-stream" \
    --data-binary @matrices.txt
Run Code Online (Sandbox Code Playgroud)

<ACCESS_TOKEN> 应替换为OAuth 2访问令牌.


Yas*_*ant 11

@Greg 的回答也有效,但似乎是一件很麻烦的事。

我在这里使用了 Dropbox 的官方命令行界面:https : //github.com/dropbox/dbxcli

作为发布日期,它运行良好,并提供了许多有用的下载和上传命令。

  • 截至 2023 年 3 月,该存储库表示它不是官方的:https://github.com/dropbox/dbxcli/commit/dfcfa136ea5799206b4dfc02ef2dedd1b93914dc (3认同)
  • 这是最好的答案,因为它使用官方 Dropbox 命令行界面。这些二进制文件可从 [https://github.com/dropbox/dbxcli/releases](https://github.com/dropbox/dbxcli/releases) 获取 (2认同)