Dropbox 是否有办法在文件更改时发出通知,即新上传到达或文件已更改。
9 回答
尽管您仍然需要轮询,但有一个相对较新的 API 端点/delta
,它可以让您比端点更有效地进行轮询/metadata
。
这比使用 RSS 提要更好。
正如 Kannan 所指出的,有一个新的 API 端点,称为/delta
比轮询或 RSS 更好。
这也可以与/longpoll_delta
API 端点一起使用:
A long-poll endpoint to wait for changes on an account. In conjunction
with /delta, this call gives you a low-latency way to monitor an account
for file changes.
Dropbox 现在正式提供 Webhooks https://www.dropbox.com/developers/blog/90/announcing-dropbox-webhooks
可以调用这个 delta API 来获取同步
Dropbox 最近发布了 WebHooks!
如果您有兴趣帮助我们,只需点击填写您的信息,我们将与您联系:
快乐 Dropboxing!
如果您有一台安装了 Dropbox 且始终处于开启状态的计算机,您可以设置脚本以在 Dropbox 弹出更改通知时运行。然后,该脚本可以使用 RSS(或 /delta API)获取更改日志,如果您感兴趣的文件/目录已更改,则发送通知。
在 Mac 上,Dropbox 可以向 Growl 发送通知,您可以告诉 Growl 运行您的脚本。在 Windows 上,您需要使用gTraySpy之类的工具来监视系统托盘中的通知。如果您安装了Windows Balloons插件,Windows 版的 Growl 可以做到这一点。
只要您可以在发生更改时运行脚本,只需解析更改日志并在某些项目发生更改时执行操作即可。
虽然 Dropbox 的 delta API 用于获取所有已修改文件详细信息的列表,但需要通过 webhook 获取有关更改的通知(更改是修改、添加或删除文件)
- 前往:Dropbox 开发者应用控制台
- 单击包含要通知其更改的文件的应用程序。
- 向下滚动到“WEBHOOK”
- 粘贴将通过 POST 方法处理通知的链接。
- 单击启用。
在您单击启用的那一刻,保管箱会向您输入的链接发送一个请求,以查看它是否响应 GET 请求。您需要确保链接确实响应它。如果使用 Python 和 Flask 框架,以下两行代码就足够了:
@app.route('/webhook', methods=['GET'])
def verify():
'''Respond to the webhook verification (GET request) by echoing back the challenge parameter.'''
return request.args.get('challenge')
现在,每次对 Dropbox 进行更改时,您都会通过 POST 收到上述链接的通知。以您想要的方式处理通知。:)
Dropbox 有一个新的 delta 长轮询端点:
https://www.dropbox.com/developers/blog/63/low-latency-notification-of-dropbox-file-changes
Dropbox SYNC API是要走的路
DBPath *path = [DBPath root];
[fileSystem addObserver:self forPathAndChildren:path block:^() {
NSLog(@"something changed in your dropbox folder!");
}];