在Google云端存储上获取下载上传的随机文件名

时间:2015-12-24 07:34:43

标签: php google-cloud-storage

每个人的好日子

我正在将每个用户提交的文件上传到Google云端存储,我目前正在后端生成20个字符的字符串,该字符串将用作Google云端存储上新上传文件的新文件名。

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

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

我们可以通过发送有关我想要的文件名性质的数据来上传文件并获取文件名吗?

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

1 个答案:

答案 0 :(得分:0)

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

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