Я использую следующий метод для загрузки файла в хранилище файлов Azure.Что он делает, так это то, что иногда он стирает файлы, уже находящиеся в каталоге, устанавливая их длину равной 0. Новый файл загружается с правильной длиной, но старые имеют длину, равную 0. Он делает это 8 из 10 раз, безвыдает любую ошибку.
public static bool UploadFile(string fileName, byte[] fileInBytes, string directory, string sunDirectory)
{
if (fileInBytes == null && fileInBytes.Length == 0)
{
Logger.Log("file is zero length");
return false;
}
CloudStorageAccount storageAccount;
try
{
storageAccount = CloudStorageAccount.Parse(documentsConnectionString);
}
catch(Exception ex)
{
Logger.Log("can't use storage account! " + ex.Message);
return false;
}
CloudFileClient fileClient = storageAccount.CreateCloudFileClient();
CloudFileShare share = fileClient.GetShareReference(fileShareReference);
if (share.Exists())
{
try
{
CloudFileDirectory rootDir = share.GetRootDirectoryReference();
CloudFileDirectory directoryRef;
directoryRef = rootDir.GetDirectoryReference(directory);
directoryRef.CreateIfNotExists();
CloudFileDirectory subDirectoryRef;
subDirectoryRef = directoryRef.GetDirectoryReference(subDirectory);
subDirectoryRef.CreateIfNotExists();
CloudFile file = subDirectoryRef.GetFileReference(fileName);
file.UploadFromByteArray(fileInBytes, 0, fileInBytes.Count());
return true;
}
catch(Exception ex)
{
Logger.Log("Uploading file to azure exception: " + ex.Message);
return false;
}
}
else
{
Logger.Log("Document share does not exist!");
return false;
}
}