【问题标题】:Upload file on Linux (CLI) to Dropbox (via bash/sh)?将 Linux (CLI) 上的文件上传到 Dropbox(通过 bash/sh)?
【发布时间】:2017-02-08 18:20:55
【问题描述】:

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

我已经看到创建Dropbox App 的可能性,但它会创建自己的保管箱文件夹。

还查看了Dropbox Saver,但这似乎适用于浏览器。

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

正在通过保管箱developer API documentation,但有点迷路了。

谁有好的提示?

【问题讨论】:

  • 哦,我们又来了。 Bash 是一种编程语言。如果我把它放在服务器故障上,他们会在编程后关闭它。请让我休息一下:/
  • 近距离投票不是为了“不是编程语言”,而是要求异地资源。
  • 好吧,这不是投票的方式。无论如何,它是关于保管箱 API 的,我不明白这与编程无关......好吧,是什么让你的船漂浮起来。今天晚些时候我会删除这个问题。
  • 是的,这就是他们的演员阵容。 “请求异地资源”是“离题”中的选项之一。这个问题也很广泛:一个解决方案必须包含一个完整的 Bash/shell 脚本,而且也不是很清楚:老实说,“类似 curl 的东西”、“好的提示”并不是特别具体。

标签: linux bash curl dropbox-api


【解决方案1】:

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

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

然后,为您的应用获取帐户的访问令牌。最简单的方法是使用应用页面上的“生成”按钮,您将在创建应用后发送到该页面。也可以通过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

&lt;ACCESS_TOKEN&gt; 应替换为 OAuth 2 访问令牌。

【讨论】:

  • 谢谢!这意味着完全访问。所以在任何闯入的情况下,通过那个令牌你基本上可以访问我所有的文件?
  • 是的,您可以在此处找到有关不同权限的更多信息:dropbox.com/developers/reference/…
  • 谢谢。我是这么认为的:(该应用程序正在运行,但它不允许共享文件夹。叹息。而且我不想在某些服务器上公开我的所有文件(通过令牌)。
  • @Roger 你可以创建一个只处理一个目录的应用程序,这样你就不会在 dbox 上暴露所有数据
  • 并确保不要错过文件名前的@,因为它告诉 curl 上传文件的内容而不是文件名
【解决方案2】:

@Greg 的回答也有效,但似乎是一项很长的工作。

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

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

【讨论】:

【解决方案3】:

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2013-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多