当前位置:  开发笔记 > 人工智能 > 正文

自动生成文件名而不会发生冲突

如何解决《自动生成文件名而不会发生冲突》经验,为你挑选了1个好方法。

我正在写一个"文件共享托管",我想在上传到一个唯一的名称时重命名所有文件,并以某种方式跟踪数据库上的名称.由于我不想要两个或多个具有相同名称的文件(这肯定是不可能的),我正在寻找一种基于密钥或其他东西为我生成随机名称的算法.

此外,我不想生成名称并搜索数据库以查看该文件是否已存在.我想确保我的应用程序之前从未创建过生成的文件名的100%或99%.

知道怎么写这样的应用程序吗?



1> Mitch Denny..:

您可以根据文件内容本身生成哈希.这有两个很好的理由:

    让您永远保存同一个文件 - 例如,如果你有一个音乐文件,该文件内容一致的两个副本,你可以检查,看看是否已经存储的文件,并且只存储一次.

    您从blob中分离元数据(文件名只是元数据).因此,您将拥有一个由文件内容的哈希索引的存储系统,然后将文件元数据与该哈希查找代码相关联.

根据散列的大小,找到两个计算相同散列的文件的风险确实相同,但是你可以通过将文件散列成块来有效地缓解(这可能导致一些有趣的存储优化方案:P).

推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有