Copy file from URL to Azure BLOB

2019-01-25 20:21发布

问题:

I have a file at a remote url such as http://www.site.com/docs/doc1.xls and i would like to copy that file onto my BLOB storage account.

I am aware and know of uploading files to a BLOB storage but wasn't sure how this can be done for a file from remote URL.

回答1:

Try looking at CloudBlockBlob.StartCopyFromBlob that takes a URI if you are using the .NET client library.

string accountName = "accountname";
string accountKey = "key";
string newFileName = "newfile2.png";
string destinationContainer = "destinationcontainer";
string sourceUrl = "http://www.site.com/docs/doc1.xls";

CloudStorageAccount csa = new CloudStorageAccount(new StorageCredentials(accountName, accountKey), true);
CloudBlobClient blobClient = csa.CreateCloudBlobClient();
var blobContainer = blobClient.GetContainerReference(destinationContainer);
blobContainer.CreateIfNotExists();
var newBlockBlob = blobContainer.GetBlockBlobReference(newFileName);
newBlockBlob.StartCopyFromBlob(new Uri(sourceUrl), null, null, null);

Gaurav posted about this when it first came out. Handy, and his post shows how to watch for completion since the operation is Async.