2015-12-24 52 views
0

好日子接下来上传给大家获得可用的任意文件名上谷歌云存储

我上传的每个用户提交的文件,谷歌云存储,以及我目前产生的后端20个字符的字符串将用作Google云端存储上新上传文件的新文件名。

但是仍然有可能我会生成已经在GCS上使用过的文件名。我正在上传生产和本地主机上的东西,所以我不能使用数据库来检查哪些文件名已被使用。

我该如何问谷歌的随机N字符字符串,可以用作下一个上传文件的标识符?

我可以上传文件并获取文件名后,通过发送数据请求有关我想要的文件名的性质?

在此先感谢,伙计们! 祝你一切顺利!

回答

0

该可能性可能低于您的想象。如果使用大写字母AZ,小写字母az和数字0-9,并且构造一个完全随机的20个字符的字符串,即(26 + 26 + 10)可能性或7.04x10 35可能的组合。为了甚至有百万分之一的机会发生碰撞,你需要上传3.7万亿个物体的地方。

但也许它们不是真正的随机字符串,或者用户可以选择它们,或者您依赖一些可能会不时产生相同的“随机”字符串的算法。在这种情况下,一个很好的预防措施是指示GCS只在不覆盖已经存在的对象时才允许上载。您可以通过将“ifGenerationMatch”参数设置为“0”来使用XML或JSON API执行此操作。