无法将maxmind二进制数据库上传到azure存储

时间:2015-08-04 15:53:49

标签: powershell-v3.0 azure-storage-blobs maxmind

是否有关于可以在azure blob存储上传的文件类型的规则?

我尝试上传Maxmind二进制数据库,但是当我尝试使用AZcopy上传时似乎没有发生任何事情,它甚至没有回到提示但是在第一行之后停留.. 0文件完成..

尝试使用Azure存储资源管理器上传时,在一段时间内声明命令被取消后会抛出错误

真心感谢任何帮助

由于

更新:当我尝试使用PowerShell时,它发出错误'客户端无法在指定的超时内完成操作'。

所以我添加了1小时的超时时间,这又引发了一个错误说明.. Set-AzureStorageBlobContent:远程服务器返回错误:(400)错误请求。 HTTP状态代码:400 - HTTP 错误消息:指定的blob或块内容无效。

我上传的代码:

Set-AzureStorageBlobContent -Container "eventenrichhelpers" -File ".\GeoLite2-City.mmdb" -Blob "GeoLite2-City.mmdb" -ClientTimeoutPerRequest 3600

2 个答案:

答案 0 :(得分:0)

没有文件类型限制。但是存在文件大小限制。对于块Blob,文件大小应为< = 200GB。使用AzCopy或Set-AzureStorageBlobContent时,如果未指定blob类型,则默认情况下会将文件上载为Block Blob。如果文件大于200GB,则上传将失败。

如果您的文件大于200GB,则可以将其作为Page Blob上传。页面Blob文件大小可以是<= 1TB。要将blob类型指定为页面blob,请使用AzCopy或Set-AzureStorageBlobContent中的BlobType参数,并将值指定为Page。

答案 1 :(得分:0)

使用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的文件的行为。