public string Upload(UploadStreamInfo request)
{
string result = null;
var directoryPath = DefaultBlobContainerName;
if (!string.IsNullOrEmpty(request.FolderName))
{
directoryPath = request.FolderName;
}
//Container name
var containerName = GetContainerNameFromUrl(directoryPath);
//directory path
directoryPath = GetDirectoryPathFromUrl(directoryPath);
var container = _cloudBlobClient.GetContainerReference(containerName);
container.CreateIfNotExists(BlobContainerPublicAccessType.Blob);
ICloudBlob blob = null;
if (String.IsNullOrEmpty(directoryPath))
{
blob = container.GetBlockBlobReference(request.FileName);
}
else
{
directoryPath += directoryPath.EndsWith(_cloudBlobClient.DefaultDelimiter) ? request.FileName : _cloudBlobClient.DefaultDelimiter + request.FileName;
blob = container.GetBlockBlobReference(directoryPath);
}
blob.Properties.ContentType = MimeTypeResolver.ResolveContentType(request.FileName);
using (var memoryStream = new MemoryStream())
{
// upload to MemoryStream
//memoryStream.SetLength(request.Length);
request.FileByteStream.CopyTo(memoryStream);
memoryStream.Position = 0;
// fill blob
blob.UploadFromStream(memoryStream);
}
result = blob.Uri.AbsolutePath.TrimStart('/');
return result;
}