对于可以在azure blob存储上上传的文件类型是否有任何规则?
我尝试上传Maxmind二进制数据库,但当我尝试使用AZcopy上传时,似乎没有发生任何事情,它甚至不回提示,但停留在第一行之后。
当尝试使用Azure存储资源管理器上传时,它会在一段时间后抛出一个错误,声明命令已被取消
任何帮助都是真诚的感谢
感谢更新:当我尝试使用powershell时,它给出一个错误'客户端无法在指定的超时时间内完成操作'。
所以我添加了一个1小时的超时,这反过来抛出了一个错误,说明…Set-AzureStorageBlobContent: The remote server returned an error: (400) Bad Request。HTTP状态码:400 - HTTP错误信息:指定的blob或block内容无效。
我用来上传的代码:Set-AzureStorageBlobContent -Container "eventenrichhelpers" -File ".GeoLite2-City.mmdb" -Blob "GeoLite2-City.mmdb" -ClientTimeoutPerRequest 3600
没有文件类型限制。但是有文件大小限制。对于Block Blobs,文件大小应为<=200GB。当使用AzCopy或Set-AzureStorageBlobContent时,如果没有指定blob类型,它将默认将文件上传为Block blob。如果文件大于200GB,则上传失败。
如果您的文件大于200GB,您可以将其作为Page Blob上传。Page Blob文件的大小可以是<=1TB。要指定blob类型为页面blob,请使用AzCopy或Set-AzureStorageBlobContent中的BlobType参数,并指定值为page。
由于其他原因,使用powershell的第二次超时上传失败。
如果你有一个无效的块,用一个有效的块替换它,最后删除它。
# create temp dummy file
$tempFileName = [System.IO.Path]::GetTempFileName()
"delete me" >> $tempFileName
$tempFile = Get-ChildItem -Path $tempFileName
# overwrite blob with dummy file
$tempFile | Set-AzureStorageBlobContent `
-Container $containerName `
-Blob $blobName `
-Context $storageContext `
-Force
# remove dummy blob
Remove-AzureStorageBlob `
-Container $containerName `
-Blob $blobName `
-Context $storageContext `
-Force
允许您重试上传。但我不知道为什么上传这么慢,它运行超时。我在一个50MB的文件中得到了这个行为