如何将Azure blob文件复制到Azure本地存储

时间:2011-10-05 19:00:12

标签: c# azure azure-storage-blobs spatialite

我在Azure中托管了一个WCF服务。

我有一个空间数据库文件,我将保留在Azure blob存储(1.1G)中。压缩它是500K。

我想在服务启动时将其复制到本地存储,然后使用spatialite从数据库文件中运行各种空间功能。空间数据是静态的。

是否有人使用代码段(C#)将文件从azure blob存储区复制到本地存储区?

(另外,我认为这种方法有意义 - 是吗?)

(另外,我是否应该费心压缩文件以进行blob存储?)

由于

编辑:感谢前两个回复。我希望能使用一些代码片段。我可以使用更多的解释,哪个是更好的路线。只需编写代码或使用此引导程序。

解: 我将SMARX标记为答案,因为它应该适用于任何受保护的azure文件,但由于该文件是公开的blob文件,因此我跳过了SMARX建议的CloudStorageAccount路由,支持简单的Web访问。我想知道使用SMARX的方法是否有任何速度优势。任何意见将不胜感激。

// Retrieve an object that points to the local storage resource
LocalResource localResource = RoleEnvironment.GetLocalResource("MyLocalStorage");

WebClient webClient = new WebClient();
webClient.DownloadFile(blobUrl, localResource.RootPath + "mySpatialiteDB.sqlite");

注意:您必须通过webRole属性配置本地存储

1 个答案:

答案 0 :(得分:2)

如何:CloudStorageAccount.Parse(...).CreateCloudBlobClient().GetBlobReference("path/of/blob").DownloadFile(RoleEnvironment.GetLocalResource("nameOfLocalResource").RootPath);

在您执行其他任何操作之前,在OnStart的RoleEntryPoint中执行此操作吗?