具有分号的值的 azcopy 元数据
azcopy metadata with a value that has a semicolon
这可能是一个简单的问题,但出于某种原因我找不到答案
我正在尝试将文件上传到我们的 blob 存储,并在此过程中正确设置元数据以便之后读取它。
所以目前我有以下命令:
azcopy copy "<local file path>" "<blob file path>?<sas token>" --metadata "demo=2;5"
这不起作用,这是因为分号
azcopy copy "<local file path>" "<blob file path>?<sas token>" --metadata "demo=25"
然而,这有效但超过了我想要实现的目的。
我认为这是不可能的。我查找了 azcopy
的源代码,它使用 ;
作为分隔符来分隔多个元数据 key/value 对。
metadataString := string(dstData.Metadata[:dstData.MetadataLength])
jpm.metadata = common.Metadata{}
if len(metadataString) > 0 {
for _, keyAndValue := range strings.Split(metadataString, ";") { // key/value pairs are separated by ';'
kv := strings.Split(keyAndValue, "=") // key/value are separated by '='
jpm.metadata[kv[0]] = kv[1]
}
}
您可能想在这里提出一个问题:https://github.com/Azure/azure-storage-azcopy/issues 让团队知道这个问题。
这可能是一个简单的问题,但出于某种原因我找不到答案 我正在尝试将文件上传到我们的 blob 存储,并在此过程中正确设置元数据以便之后读取它。
所以目前我有以下命令:
azcopy copy "<local file path>" "<blob file path>?<sas token>" --metadata "demo=2;5"
这不起作用,这是因为分号
azcopy copy "<local file path>" "<blob file path>?<sas token>" --metadata "demo=25"
然而,这有效但超过了我想要实现的目的。
我认为这是不可能的。我查找了 azcopy
的源代码,它使用 ;
作为分隔符来分隔多个元数据 key/value 对。
metadataString := string(dstData.Metadata[:dstData.MetadataLength])
jpm.metadata = common.Metadata{}
if len(metadataString) > 0 {
for _, keyAndValue := range strings.Split(metadataString, ";") { // key/value pairs are separated by ';'
kv := strings.Split(keyAndValue, "=") // key/value are separated by '='
jpm.metadata[kv[0]] = kv[1]
}
}
您可能想在这里提出一个问题:https://github.com/Azure/azure-storage-azcopy/issues 让团队知道这个问题。