Я хочу загрузить некоторые файлы размером 35 МБ в контейнер BLOB-объектов.
Я написал код для разделения данных на блоки и загрузки их в контейнер BLOB-объектов и формирования BLOB-объекта с помощью PUT.
Я тестировал код для некоторых файлов Размер 2 МБ или что-то еще ... Он работал хорошо. Но когда я попробовал его для большого файла MB, он выдает мне эту ошибку
Server Error
404 - File or directory not found.
The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable.
когда я пробовал это для файлов размером 6 МБ , это выдает мне эту ошибку ..
Server Error in '/' Application.
Runtime Error
Description: An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely (for security reasons). It could, however, be viewed by browsers running on the local server machine.
Details: To enable the details of this specific error message to be viewable on remote machines, please create a <customErrors> tag within a "web.config" configuration file located in the root directory of the current web application. This <customErrors> tag should then have its "mode" attribute set to "Off".
<!-- Web.Config Configuration File -->
<configuration>
<system.web>
<customErrors mode="Off"/>
</system.web>
</configuration>
Notes: The current error page you are seeing can be replaced by a custom error page by modifying the "defaultRedirect" attribute of the application's <customErrors> configuration tag to point to a custom error page URL.
<!-- Web.Config Configuration File -->
<configuration>
<system.web>
<customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/>
</system.web>
</configuration>
Может кто-нибудь сказать мне, как решить эту проблему ...
Код для загрузки BLOB-объекта.
protected void ButUploadBlocks_click(object sender, EventArgs e)
{
// store upladed file as a blob storage
if (uplFileUpload.HasFile)
{
name = uplFileUpload.FileName;
byte[] byteArray = uplFileUpload.FileBytes;
Int64 contentLength = byteArray.Length;
int numBytesPerBlock = 250 *1024; // 250KB per block
int blocksCount = (int)Math.Ceiling((double)contentLength / numBytesPerBlock); // number of blocks
MemoryStream ms ;
int length = 0;
List<string>BlockIds = new List<string>();
string block;
int offset = 0;
// get refernce to the cloud blob container
CloudBlobContainer blobContainer = cloudBlobClient.GetContainerReference("documents");
if (textbox.Text != "")
{
name = textbox.Text + "/" + name;
}
// set the name for the uploading files
string UploadDocName = name;
// get the blob reference and set the metadata properties
CloudBlockBlob blob = blobContainer.GetBlockBlobReference(UploadDocName);
blob.Properties.ContentType = uplFileUpload.PostedFile.ContentType;
for (int i = 0; i < blocksCount; i++, offset = offset + numBytesPerBlock)
{
block = Convert.ToBase64String(BitConverter.GetBytes(i));
ms = new MemoryStream();
if (i == (blocksCount - 1))
{
length = (int)contentLength - offset;
}
else
{
length = numBytesPerBlock;
}
ms.Write(byteArray, offset, length);
ms.Position = 0;
blob.PutBlock(block, ms, null);
BlockIds.Add(block);
}
blob.PutBlockList(BlockIds);
blob.Metadata["FILETYPE"] = "text";
}
}