2016-12-26 72 views
0

使用AWS s3存储桶上的UTF-8格式的文件名时,我发现某些引用的文件名(在链接到文件在s3桶)可能不同于我的python应用程序(我使用boto库)的代码引用相同的文件名。正如我发现他们不同normalization forms of unicode不同,并使用unicodedata.normalize后问题消失。什么是AWS S3桶的Unicode规范化表单

但是我还没有发现关于归一化形式,其正在使用的AWS(NFCNFKCNFDNFKD或)的任何信息,所以我将高度赞赏trasted源的任何suggestance其提供信息,谢谢。

+1

看起来很奇怪,S3会标准化对象键。你能提供一个示例代码点序列和它转换成什么样的序列吗? –

回答

0

它看起来像S3不适用任何规范化本身。如果我从Mac上再上传(使用S3 Web控制台)一个带有unicode名称的文件(例如Ärende.txt)到S3,再从Windows上传到S3,我将在S3中结束两个文件。它们在S3控制台中看起来一样,但是它们被S3视为不同,因为名称的编码不同。

你将不得不考虑它是如何影响你的应用程序(用户),并相应地进行调整。例如,如果您的用户可能会在不同的环境(Mac与Windows或Linux)之间切换并期望一致的跨平台行为,那么您似乎需要自己规范化名称。如果你的用户一直在单一平台上工作,那么你不需要关心最可能的。