php – 如何判断文件名中是否有加号()?

因此,AWS会将空间转换为存储桶/文件URL.但是已经包含的文件名编码为+.我很困惑如何处理这种情况.

当应用程序的输入URL是:

https://s3-us-west-2.amazonaws.com/mybucket/Pul0419_32_a+b.zip

如何判断实际存在的文件是Pul0419_32_a b.z​​ip还是Pul0419_32_a b.z​​ip

解决方法:

我是AWS爱好者,我必须承认S3的原始架构师在决定在URL的路径中应该被解释为等同于ASCII 0x20(“space”)时犯了一个非常不幸的错误.

当查询字符串的一部分时,该字符仅包含此含义.在路径上,它should have been interpreted literally.

在正确编码和解释的URL的路径中,相当于+.

那么,问题没有可靠的答案,因为导致S3错误处理正确URL的根本缺陷.

鉴于如果浏览器使用示例URL,S3会认为这些是空格,您可能最好通过将URL转换为使用+来改善您的兴趣,而是在与S3的交互中原样使用它. ..除非实际经验表明这些URL的原始来源实际上已经与S3进行了交互并确实将它们转换为+而没有将它们存储起来以供后续使用一致编码,在这种情况下,可以认为可以将它们提供给您错了,但你可能不得不改变它们,原因可能是政治上的而不是技术性的.

但是,正如你似乎已经怀疑的那样,答案并不简单.

上一篇:从0开始学习 GITHUB 系列之「团队合作利器 BRANCH」【转】


下一篇:Elasticsearch 学习之子聚集过滤