我正在尝试将一堆SQL数据库中的PDF推送到Azure blob以及一些关于它们的元数据。一切正常,但当元数据中有冒号(:)时,数据会截断。我可以手动添加:使用门户网站,因此它似乎不是一个无效字符。
我是否需要逃避:以某种方式通过PowerShell上传?我找不到任何相关的东西。
这是我的代码(PowerShell)。
foreach ($r in $dataset.Tables[0]) {
$pdfProperties = @{"ContentType" = "application/pdf"}
$metadata = @{
"invoiceid" =$r.InvoiceId
"shareid" =$r.ShareId
"generateddate" =$r.OccurredOn # <--- TRUNCATES AT :
"generatedby" =$r.Actor
"test" ="10/1/2018 10:14:04 PM" # <--- TRUNCATES AT :
}
$guid = New-Guid
if ($r.InvoiceReceipt.Length -gt 0) {
$pdfFile = "C:\Temp\blobs\$guid.pdf"
[System.IO.File]::WriteAllBytes($pdfFile, $r.InvoiceReceipt)
$pdfBlobName = "$guid.pdf"
Set-AzureStorageBlobContent -Context $ctx -Container "invoice" -File $pdfFile -Blob $pdfBlobName -BlobType Block `
-Properties $pdfProperties -Metadata $metadata
}
}
以下是Azure门户网站中的结果。
任何输入都表示赞赏。 萨德
答案 0 :(得分:0)
随着时间的推移,数据的表面截断仅仅是Azure门户中的显示工件 。
数据本身被正确分配为[datetime]
个实例,因为Thad本人能够验证:
(Get-AzureStorageBlob -Blob $blob -Container $container -Context $ctx).ICloudBlob.Metadata