在谷歌云存储上获取下一次上传的可用随机文件名


Get Available Random Filename for Next Upload on Google Cloud Storage

祝大家愉快

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

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

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

我们的,我可以上传文件并在之后获得文件名吗?可以根据请求发送关于我想要的文件名性质的数据吗?

提前感谢各位!祝你一切顺利!

这种可能性可能比你想象的要低。如果使用大写字母A-Z、小写字母A-Z和数字0-9,并构造一个完全随机的20个字符的字符串,则有(26+26+10)20的可能性,或7.04x1035可能的组合。为了有百万分之一的碰撞机会,你需要上传3.7万亿个物体。

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