gpt4 book ai didi

python - 跟踪文件夹更改/Dropbox 更改

转载 作者:太空狗 更新时间:2023-10-29 19:26:49 26 4
gpt4 key购买 nike

第一个:我知道pyinotify .

我想要的是使用 Dropbox 上传到我的家庭服务器的服务。

我的家庭服务器上会有一个 Dropbox 的共享文件夹。每次共享该文件夹的其他人将任何内容放入该文件夹时,我希望我的家庭服务器等到它完全上传并将所有文件移动到另一个文件夹,然后从 Dropbox 文件夹中删除这些文件,从而节省 Dropbox空间。

这里的问题是,我不能只跟踪文件夹中的更改并立即移动文件,因为如果有人上传大文件,Dropbox 将已经开始下载并因此在我的家庭服务器上显示文件夹中的更改.

有什么解决办法吗?使用 Dropbox API 是否有可能做到这一点?

我自己还没有尝试过,但是 Dropbox CLI version似乎有一个“filestatus”方法来检查当前文件状态。当我自己尝试后会报告。

最佳答案

正如您在问题中提到的,有一个 Python Dropbox CLI 客户端。当它不主动处理文件时,它会返回“空闲...”。我能想象的实现你想要的最简单的机制是一个 while 循环,它检查 dropbox.py filestatus/home/directory/to/watch 的输出并执行内容的 scp 然后如果成功,则删除内容。然后睡了五分钟左右。

类似于:

import time
from subprocess import check_call, check_output
DIR = "/directory/to/watch/"
REMOTE_DIR = "user@my_server.com:/folder"

While True:
if check_output(["dropbox.py", "status", DIR]) == "\nIdle...":
if check_call(["scp", "-r", DIR + "*", REMOTE_DIR]):
check_call(["rm", "-rf", DIR + "*"])
time.sleep(360)

当然,在测试这样的东西时我会非常小心,在第二次 check_call 中放错东西,你可能会丢失你的文件系统。

关于python - 跟踪文件夹更改/Dropbox 更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12338544/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com