Document Upload in Azure Cloud with ASP.Net MVC
- Configure Azure storage
connection string
To
configure your connection string, open the web.config
or app.config file from Solution Explorer in Visual Studio.Add below line in <appSettings>
tag of your config file. Replace "your
account name" with the name of your storage account, and "your account key" with your account access
key:
<add key="StorageConnectionString" value="DefaultEndpointsProtocol=https;AccountName=<your
account name>;AccountKey=<your account key>" />
- Parse the connection string from Config file
The
Microsoft Azure Configuration Manager Library for .NET provides a class for
parsing a connection string from a configuration file.
below
is example that shows to retrieve a connection string from a configuration
file:
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("StorageConnectionString"));
Above line will parse CloudStorageAccount from your connection
string.
- Create the Blob service client
The CloudBlobClient class enables you to retrieve
containers and blobs stored in your storage. Here's one way to create the
service client:
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
- Create Containers for Blob service Client
Below
example shows how to create a container for blob service client, you can create
different containers for different users by replacing your names with
"<container name>" in below code and also shows how to set
permissions for that perticular container :
CloudBlobContainer container = blobClient.GetContainerReference(<container
name>);
if (container.CreateIfNotExists())
{
container.SetPermissions(new BlobContainerPermissions { PublicAccess =
BlobContainerPublicAccessType.Blob });
}
For defining container name there are
basic rules are there, which are as follows :
- Container names must start with a letter or number, and can contain only letters, numbers, and the dash (-) character.
- Every dash (-) character must be immediately preceded and followed by a letter or number; consecutive dashes are not permitted in container names.
- All letters in a container name must be lowercase.
- Container names must be from 3 through 63 characters long.
- Create Blob into Containers
To
upload a file to a block blob, get a container reference as shown above and use
it to get a block blob reference. Once you have a blob reference, you can
upload any stream of data to it by calling the UploadFromStream method. This operation will create the
blob if it didn't previously exist, or overwrite it if it does exist.
The
following example shows how to upload a blob into a container which is already
created :
CloudBlockBlob blob = container.GetBlockBlobReference(fileName);
blob.UploadFromStream(upload.InputStream);
Now, you can get that files or data by using blob.Uri.AbsoluteUri, this will give you url for download or
display data or files that you uploaded into
blob container. Or you can use below line of code for download
stream of data which uploaded uisng UploadFromStream
function
:
CloudBlockBlob blockBlob = container.GetBlockBlobReference(<blob name>);
// Save blob contents to a file.
using (var fileStream = System.IO.File.OpenWrite(@"path\myfile"))
{
blockBlob.DownloadToStream(fileStream);
}
In above code,
first it will retreive refernce of blob which you want to download, and then it
will transfer the blob contents to a stream object and then save that stream
into file which given as "@"path\myfile".
Delete blob from Container :
To delete a blob, first get a blob reference and then call the Delete method of that blob as shown below :
CloudBlockBlob blockBlob = container.GetBlockBlobReference(<blob
name>);
// Delete the blob.
blockBlob.Delete();
Comments
Post a Comment