有没有 NAS 自带工具或者文件管理软件能在文件上传之前验证 NAS 上已经存在该文件?

2023-07-19 10:41:18 +08:00
 shijingshijing

假如我有一个文件夹需要上传到 NAS ,里面是手机照片什么的,我需要知道 NAS 上面是否已经保存过该照片了,这样我就只需要上传这些 NAS 上没有的图片。

我知道有的同步软件可以只差分同步,但是我需要不是同步,而是明确知道哪些文件已经存在,后续我有自己手动调整的需求。

1625 次点击
所在节点    程序员
16 条回复
liuwei889
2023-07-19 10:59:44 +08:00
在 NAS 部署一个 api,该 api 接受入参 filename,判断是否存在,是则 True,否则 False

import os
from django.http import JsonResponse

def check_file_existence(request):
if request.method == 'GET':
filename = request.GET.get('filename', None)
if filename:
# 拼接文件的绝对路径
file_path = os.path.join('path/to/your/files/', filename) # 替换为你的文件存储路径
exists = os.path.exists(file_path)
return JsonResponse({'exists': exists})
else:
return JsonResponse({'error': 'Missing "filename" parameter.'}, status=400)
else:
return JsonResponse({'error': 'Invalid request method.'}, status=405)
jinqzzz
2023-07-19 11:14:47 +08:00
我都是用 rsync 手动同步
ButcherHu
2023-07-19 12:54:03 +08:00
最简单就是用文件系统的 ddump 功能,或者是对象存储的 dedump 功能。
不然就找 dedump 软件咯,这个一搜一大把,这也符合你说的之后处理的需求。
ButcherHu
2023-07-19 12:55:41 +08:00
上传之前啊,我看错了,要是都在一个目录里面可以用 rsync
vmebeh
2023-07-19 13:23:01 +08:00
total commander
zcjfesky
2023-07-19 13:24:22 +08:00
nastool 我记得可以查视频是否重复...
xdeng
2023-07-19 14:09:03 +08:00
写个程序扫描 先比较大小 相同再比较哈希
Ericality
2023-07-19 14:13:51 +08:00
我思索了一下
你 windows 直接拖拽进去
他发现重复的不是就会提示你是替换还是跳过么
不过确实一改文件名就不行了
shijingshijing
2023-07-19 14:18:04 +08:00
@Ericality 你猜我为什么需要找一个工具?

我就是像你说的这样搞过,几千个图片文件,这里面还有很多是 IMG_xxxx.jpg 这种名字重复的,拖过去后一个个确认,点了几百次,弄完之后我再也不敢了,宁愿新建一个文件夹,允许有一大堆重复的。
VirgilChen97
2023-07-19 14:22:24 +08:00
freefilesync ,可以比对两个文件夹的内容
Ericality
2023-07-19 14:31:04 +08:00
@shijingshijing 首先我记得 window 实际上有个 让我决定每个文件的选项 里面会默认勾选跳过具有相同大小和日期的文件 所以不需要手动点
但是像我说的 改名字就能跳过确实和去重的需求有差距
期待是否有 v 友分享更好用的工具吧
6Bpencle
2023-07-19 14:38:41 +08:00
goodsync 或者 freefilesync ?都可以执行仅分析操作
yunyuyuan
2023-07-19 14:42:16 +08:00
我是写了脚本,定时把/path/to/picture/tmp 下面的图片或视频,根据 exif 命名为/path/to/picture/yyyy/MM/dd 这种形式。
如果有 exif 一样的,在对比两文件的大小:
* 如果大小也一样,判断是同一个文件,删掉
* 如果大小不一样,则改成 yyyy/MM/dd-1 ,yyyy/MM/dd-2 等等
Tee
2023-07-19 14:44:22 +08:00
rsync
shijingshijing
2023-07-19 14:47:00 +08:00
@Ericality 是有这个选项,但是这个选项是一把梭,一旦选择之后,后面所有文件都要么替换要么不替换。没办法精细控制,要想精细控制只能手动一个个弄。
shijingshijing
2023-07-19 14:48:10 +08:00
@yunyuyuan 也是个办法,但是最终极的还是二进制比对,起码先获取文件 Hash ,然后比对。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/957904

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX