Set-AzureStorageBlobContent -Metadata,日期截断为冒号

时间:2017-11-26 23:33:09

标签: powershell azure azure-storage-blobs

我正在尝试将一堆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门户网站中的结果。

enter image description here

任何输入都表示赞赏。 萨德

1 个答案:

答案 0 :(得分:0)

随着时间的推移,数据的表面截断仅仅是Azure门户中的显示工件

数据本身被正确分配为[datetime]个实例,因为Thad本人能够验证:

(Get-AzureStorageBlob -Blob $blob -Container $container -Context $ctx).ICloudBlob.Metadata