Windows Azure: Não é possível fazer upload de um arquivo de 34 MB no Blob
-
26-09-2019 - |
Pergunta
Eu estava tentando fazer upload de um arquivo de 34 MB no bolhas, mas está me levando a algum erro
XML Parsing Error: no element found
Location: http://127.0.0.1:83/Default.aspx
Line Number 1, Column 1:
O que devo fazer .... como resolvê -lo
Sou capaz de fazer upload de pequenos arquivos de tamanho 500kb .. mas tenho um arquivo de tamanho 34 MB para ser carregado no meu contêiner de blob
Eu tentei usando
protected void ButUpload_click(object sender, EventArgs e)
{
// store upladed file as a blob storage
if (uplFileUpload.HasFile)
{
name = uplFileUpload.FileName;
// get refernce to the cloud blob container
CloudBlobContainer blobContainer = cloudBlobClient.GetContainerReference("documents");
// set the name for the uploading files
string UploadDocName = name;
// get the blob reference and set the metadata properties
CloudBlob blob = blobContainer.GetBlobReference(UploadDocName);
blob.Metadata["FILETYPE"] = "text";
blob.Properties.ContentType = uplFileUpload.PostedFile.ContentType;
// upload the blob to the storage
blob.UploadFromStream(uplFileUpload.FileContent);
}
}
Mas não consigo fazer upload. Alguém pode me dizer como fazer isso ....
Solução
Blobs maiores que 64 MB devem ser carregados usando blobs de bloco. Você divide o arquivo em blocos, carrega todos os blocos (associando cada bloco a um identificador de string exclusivo) e, no final, você publica a lista de IDs de bloco no blob para comprometer todo o lote de uma só vez.
O upload em blocos também é recomendado para grandes blobs com menos de 64 MB de tamanho. É muito fácil para um soluço na conexão de rede ou rotear pela Internet para perder um ou dois quadros em um upload muito grande, o que corrompe ou invalidará todo o upload. Use blocos menores para reduzir sua exposição a eventos cósmicos.
Mais informações neste tópico de discussão: http://social.msdn.microsoft.com/forums/en-nz/windowszure/thread/f4575746-a695-40ff-9e49-ffe4c99b28c7
Outras dicas
Eu começaria lançando alguns logs no projeto para tentar rastrear o problema. Pode não estar acontecendo onde você pensa. Também pode haver um erro de permissões. Tente adicionar alguns dados fictícios no banco de dados. Se ainda falhar, isso pode ser um problema em potencial.
Mas rastreie -o com algum depuração, registro e revisão de código, aposto que você pode chegar ao fundo do problema mais cedo assim. E também ajudará a tornar seu código mais robusto.
Você pode usar blobs aqui. Eu acho que é um problema com o tamanho da sua solicitação da Web. Você pode alterar essa configuração no web.config aumentando o número do atributo maxRequestLength no elemento. Se você está enviando pedaços de 500 KB, está desperdiçando largura de banda e reduzindo o desempenho. Envie pedaços maiores de dados como 1-2 MB por pedaço. Veja meu controle Silverlight ou HTML5 de upload para uploads em chunked. Escolha o seu Azure Arquive Upload Control: Silverlight e TPL ou HTML5 e Ajax
Use o utilitário de transferência do blob para baixar e fazer upload de todos os seus arquivos BLOB.
É uma ferramenta para lidar com milhares de transferências de blob (pequenas/grandes) de maneira eficaz.
Binários e código -fonte, aqui: http://bit.ly/blobtransfer