我正在使用以下代码上传到Azure。一个小文件就可以了,但是一个较大的文件(只有30MB)会引发一个500错误。 Azure存储资源管理器上传没有任何问题。这似乎是一个超时,因为抛出错误需要很长时间。我有点卡住,因为错误是如此模糊是否有任何需要打开的端口?这是在我的本地计算机上,但控制台将在Azure VM上。我需要知道VM上的任何防火墙设置。
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)
答案 0 :(得分:0)
您可能会收到此错误,因为您尝试一次上传一个非常大的文件。上传大文件时,建议您通过将它们分成块来上传它们。在Windows Azure术语中,您需要将文件拆分为较小的块并使用PutBlock
方法上载这些块。上传所有块后,您将使用PutBlockList
方法提交这些块。如果您在使用Azure Storage Explorer上传时通过Fiddler跟踪上传请求,您应该注意到它正在执行相同的操作。
我有点卡住,因为错误是如此模糊,是否有任何需要的端口 开放?这是在我的本地机器上,但控制台将在 Azure VM。我需要知道VM上的任何防火墙设置。
由于与Windows Azure存储的交互是通过REST API进行的(即在端口80或443上),因此您无需担心在防火墙中打开任何其他端口。