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

时间:2017-02-08 18:20:55

标签: linux bash curl dropbox-api

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

我已经看到了创建<ion-chip color="dark"> <ion-label>Test small chip</ion-label> </ion-chip> 的可能性,但是创建了自己的dropbox文件夹。

另请参阅Dropbox App,但这似乎适用于浏览器。

我在思考(希望)超轻量级的东西,长Dropbox Saver行,所以我不需要安装库。只需一个简单的CURL脚本就可以了。我只需要PUT文件(覆盖),不需要读取(GET)它。

通过Dropbox developer API documentation,但有点迷路。

有人提示吗?

3 个答案:

答案 0 :(得分:20)

首先,由于您需要访问现有的共享文件夹,请注册&#34; Dropbox API&#34;应用&#34; Full Dropbox&#34;访问:

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

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

然后,您可以通过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\"}" \
    --header "Content-Type: application/octet-stream" \
    --data-binary @matrices.txt

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

答案 1 :(得分:3)

@Greg的答案也有效,但似乎很麻烦。

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

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

答案 2 :(得分:0)

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