如何在erlang yaws中获取唯一的文件名

时间:2015-08-18 06:25:11

标签: erlang yaws

我正在使用yaws web服务器中的erlang创建上传媒体文件(音频,视频和图像)的应用程序。多个用户可以同时上传文件,这样我每次都能获得唯一的文件名?

请建议我解决。

1 个答案:

答案 0 :(得分:0)

通常,您有两种方法可以做到这一点:

  • 1:您将基本ID存储在数据库(如“a”)中,该数据库将成为上传下一个文件的名称,并且每次添加文件时都会增加ID(“b”,“c”, “aa”,“aA”,......)。例如,这是youtube或url-shortner使用的技术。
  • 2:您对文件进行哈希处理(使用MD5,SHA1,CRC32,...),结果哈希将是服务器上文件的名称。由于散列对于每个文件应该是唯一的,因此不应该有名称冲突。

散列技术通常占用大量CPU(因为您需要散列上传的每个文件),但您可以向客户端提供散列以检查文件的完整性。

如果你想保留文件的原始名称,你需要一个数据库(如果你使用erlang,就像mnesia)来存储每个关系(ID - > orignal name,或Hash - >原始名称)。