上传到Azure存储时出现内部500错误
问题描述:
我正在使用以下代码上传到Azure。小文件可以,但较大的文件(只有30MB)会引发500错误。 Azure存储浏览器上传时没有问题。这似乎是一个时间,因为它需要很长的时间来抛出错误。由于错误非常模糊,有没有需要打开的端口?这是在我的本地机器上,但控制台将位于Azure虚拟机上。再次,我需要注意的虚拟机上的任何防火墙设置。上传到Azure存储时出现内部500错误
CloudStorageAccount = New CloudStorageAccount(New StorageCredentials("account", "key"), True)
Dim BlobClient = CloudStorageAccount.CreateCloudBlobClient()
Dim Container = BlobClient.GetContainerReference("container")
Dim CloudBlob = Container.GetBlockBlobReference("forcast/forcast.csv")
CloudBlob.UploadFromFile("C:\HadoopTestData\forcast.csv", IO.FileMode.Open)
答
您可能会收到此错误,因为您试图一次性上传超大文件。上传大文件时,建议您通过将其分块分割来上传它们。在Windows Azure中,您需要将文件拆分成更小的块并使用PutBlock
方法上传这些块。一旦所有块都上传完毕,您将使用PutBlockList
方法提交这些块。如果您在使用Azure存储浏览器上传时通过Fiddler跟踪上传请求,则应该注意到它正在做同样的事情。
我有点卡住了,因为错误太模糊了,有没有需要打开的端口 ?这是在我的本地机器上,但控制台将在一个 Azure虚拟机上。再次,我需要注意的虚拟机上的任何防火墙设置。
由于与Windows Azure存储的交互是通过REST API(即在端口80或443上)发生的,因此您不必担心在防火墙中打开任何其他端口。