dropbox是否有办法通知文件何时发生更改,即新上传文件的到达或文件是否已更改。
答案 0 :(得分:31)
虽然您仍需要轮询,但有一个名为/delta
的相对较新的API端点,可让您比/metadata
端点更有效地进行轮询。
这比使用RSS提要更好。
答案 1 :(得分:24)
正如Kannan所指出的,有一个名为/delta
的新API端点,它比轮询或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.
答案 2 :(得分:6)
可以调用此delta API以获取同步
答案 3 :(得分:6)
Dropbox现在正式提供Webhooks https://www.dropbox.com/developers/blog/90/announcing-dropbox-webhooks
答案 4 :(得分:5)
Dropbox最近宣布了WebHooks!
如果您有兴趣帮助我们,请点击填写 您的信息,我们会联系:
快乐Dropboxing!
答案 5 :(得分:1)
如果您安装了Dropbox的计算机始终处于打开状态,则只要Dropbox弹出更改通知,您就可以将脚本设置为运行。然后该脚本可以使用RSS(或/ delta API)获取更改日志,如果您感兴趣的文件/目录已更改,请发送通知。
在Mac上,Dropbox可以向Growl发送通知,您可以告诉Growl运行您的脚本。在Windows上,您需要使用gTraySpy之类的内容监控系统托盘中的通知。如果您安装Windows Balloons插件,则Growl for Windows可以执行此操作。
只要您在更改发生时可以运行脚本,只需解析更改日志并在某些项目发生更改时执行操作。
答案 6 :(得分:1)
Dropbox为增量设置了一个新的长轮询终点:
https://www.dropbox.com/developers/blog/63/low-latency-notification-of-dropbox-file-changes
答案 7 :(得分:1)
虽然Dropbox的delta API用于获取所有已修改文件详细信息的列表,但是webhook是获取有关更改的通知(更改是修改,添加或删除文件)
当您点击启用时,保管箱会向您输入的链接发送请求,以查看它是否响应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通知您上述链接。 以您希望的方式处理通知。 :)
答案 8 :(得分:-1)
Dropbox SYNC API是要走的路
DBPath *path = [DBPath root];
[fileSystem addObserver:self forPathAndChildren:path block:^() {
NSLog(@"something changed in your dropbox folder!");
}];