【发布时间】:2019-01-02 22:08:38
【问题描述】:
避免以点 (.)、正斜杠 (/) 或 两者的顺序或组合。
由于遗留 s3 兼容性,我无法避免此类名称,因此我必须对它们进行编码。
我应该如何编码这些名称?
我不想使用 base64,因为在 azure 的 blob 控制台中查看时,这会导致调试变得非常困难。
Go 有 https://golang.org/pkg/net/url/#QueryEscape,但它有 this limitation:
来自 Go 的 url.QueryEscape 实现(具体来说, shouldEscape 私有函数),转义除 以下:字母、十进制数字、'-'、'_'、'.'、'~'。
【问题讨论】:
-
没有通用的健壮方法可以做到这一点。您必须选择一些在文件名末尾有效且在您的上下文中不会自然出现在文件名末尾的字符。然后在写入时替换尾随点,在读取时执行相反的操作。
-
为什么要保留斜线,要使名称像文件路径?
-
我没有说斜线。
-
@lf215 您说由于旧版 s3 兼容性,您无法避免使用此类名称。什么这样的名字?以点或斜线结尾?我是不是误会了?
标签: azure go escaping azure-blob-storage