V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
shijingshijing
V2EX  ›  程序员

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

  •  
  •   shijingshijing · 2023-07-19 10:41:18 +08:00 · 1626 次点击
    这是一个创建于 494 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    16 条回复    2023-07-19 14:48:10 +08:00
    liuwei889
        1
    liuwei889  
       2023-07-19 10:59:44 +08:00   ❤️ 1
    在 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
        2
    jinqzzz  
       2023-07-19 11:14:47 +08:00
    我都是用 rsync 手动同步
    ButcherHu
        3
    ButcherHu  
       2023-07-19 12:54:03 +08:00
    最简单就是用文件系统的 ddump 功能,或者是对象存储的 dedump 功能。
    不然就找 dedump 软件咯,这个一搜一大把,这也符合你说的之后处理的需求。
    ButcherHu
        4
    ButcherHu  
       2023-07-19 12:55:41 +08:00
    上传之前啊,我看错了,要是都在一个目录里面可以用 rsync
    vmebeh
        5
    vmebeh  
       2023-07-19 13:23:01 +08:00 via iPhone
    total commander
    zcjfesky
        6
    zcjfesky  
       2023-07-19 13:24:22 +08:00 via Android
    nastool 我记得可以查视频是否重复...
    xdeng
        7
    xdeng  
       2023-07-19 14:09:03 +08:00
    写个程序扫描 先比较大小 相同再比较哈希
    Ericality
        8
    Ericality  
       2023-07-19 14:13:51 +08:00
    我思索了一下
    你 windows 直接拖拽进去
    他发现重复的不是就会提示你是替换还是跳过么
    不过确实一改文件名就不行了
    shijingshijing
        9
    shijingshijing  
    OP
       2023-07-19 14:18:04 +08:00
    @Ericality 你猜我为什么需要找一个工具?

    我就是像你说的这样搞过,几千个图片文件,这里面还有很多是 IMG_xxxx.jpg 这种名字重复的,拖过去后一个个确认,点了几百次,弄完之后我再也不敢了,宁愿新建一个文件夹,允许有一大堆重复的。
    VirgilChen97
        10
    VirgilChen97  
       2023-07-19 14:22:24 +08:00 via Android
    freefilesync ,可以比对两个文件夹的内容
    Ericality
        11
    Ericality  
       2023-07-19 14:31:04 +08:00
    @shijingshijing 首先我记得 window 实际上有个 让我决定每个文件的选项 里面会默认勾选跳过具有相同大小和日期的文件 所以不需要手动点
    但是像我说的 改名字就能跳过确实和去重的需求有差距
    期待是否有 v 友分享更好用的工具吧
    6Bpencle
        12
    6Bpencle  
       2023-07-19 14:38:41 +08:00
    goodsync 或者 freefilesync ?都可以执行仅分析操作
    yunyuyuan
        13
    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
        14
    Tee  
       2023-07-19 14:44:22 +08:00
    rsync
    shijingshijing
        15
    shijingshijing  
    OP
       2023-07-19 14:47:00 +08:00
    @Ericality 是有这个选项,但是这个选项是一把梭,一旦选择之后,后面所有文件都要么替换要么不替换。没办法精细控制,要想精细控制只能手动一个个弄。
    shijingshijing
        16
    shijingshijing  
    OP
       2023-07-19 14:48:10 +08:00
    @yunyuyuan 也是个办法,但是最终极的还是二进制比对,起码先获取文件 Hash ,然后比对。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2668 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 04:30 · PVG 12:30 · LAX 20:30 · JFK 23:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.