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

问题描述 投票:0回答:3

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

我已经看到了创建

Dropbox App
的可能性,但会创建自己的保管箱文件夹。

还查看了

Dropbox Saver
,但这似乎适用于浏览器。

我在想(希望)一些超轻量级,很长的

CURL
行,所以我不需要安装库。只要一个简单的
sh
脚本就很棒了。我只需要 PUT 文件(覆盖),不需要读回(GET)它。

正在浏览保管箱开发者 API 文档,但有点迷路了。

有人有好的提示吗?

linux bash curl dropbox-api
3个回答
61
投票

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

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

然后,获取您的应用程序帐户的访问令牌。最简单的方法是使用应用程序页面上的“生成”按钮,创建应用程序后,您将被发送到该页面。也可以通过应用程序控制台访问。

然后,您可以通过

curl
上传到指定路径,如下例所示:

这会将文件从当前文件夹中的本地路径

matrices.txt
上传到 Dropbox 帐户中的
/Homework/math/Matrices.txt
,并返回已上传文件的元数据:

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\", \"mode\": \"overwrite\", \"strict_conflict\": false}" \
    --header "Content-Type: application/octet-stream" \
    --data-binary @matrices.txt

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


19
投票

@Greg 的答案也有效,但似乎是一项漫长的苦差事。

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

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


1
投票

我刚刚尝试的另一个解决方案是一个名为 Dropbox-Uploader 的 bash 实用程序。 通过与上述相同的步骤(应用程序创建和令牌生成)进行配置后,您可以执行:

./dropbox_uploader.sh upload mylocal_file my_remote_file
,我觉得这非常方便。

© www.soinside.com 2019 - 2024. All rights reserved.