如何将Azure Blob文件复制到Azure本地存储
我有一个在Azure中托管的WCF服务。如何将Azure Blob文件复制到Azure本地存储
我有一个空间数据库文件,我将保留在Azure blob存储(1.1G)中。压缩它是500K。
我想在我的服务启动时将其复制到本地存储,然后使用spatialite从数据库文件运行各种空间功能。空间数据是静态的。
有没有人有代码片段(C#)将文件从azure blob存储复制到本地存储?
(还可以,我觉得这种做法是有道理的 - 不是吗?)
(也,我应该打扰压缩为Blob存储文件?)
感谢
编辑:谢谢你的前两个回应。我希望能使用一些代码片段。我可以多用一点解释哪一条是更好的路线。只需编写代码或使用这个引导思路。
SOLUTION: 我标志着SMARX的作为答案,因为它应该对任何受保护的蔚蓝文件的工作,但由于该文件是一个公开的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性能
如何配置本地存储:CloudStorageAccount.Parse(...).CreateCloudBlobClient().GetBlobReference("path/of/blob").DownloadFile(RoleEnvironment.GetLocalResource("nameOfLocalResource").RootPath);
做,在你的OnStart你RoleEntryPoint做任何事情之前?
这更像它!一个声明,并完成。我如何设置它,以便在本地运行时不会尝试下载此文件? (即在本地运行时旁路负载,但在云端时使用它) –
将'if(!RoleEnviornment.IsEmulated)'换行。 (SDK 1.5中的新功能) – smarx
我认为这是答案,一旦我有了它,我会将其标记为 –
使用SDK,使用GetBlob API函数 - 或简单地使用REST调用:http://myaccount.blob.core.windows.net/mycontainer/myblob这是一个非常小的文件,因此压缩可能不是值得从计算的角度来看。 – 2011-10-05 20:02:03
您可以使用启动任务下载blob。有趣的是,有一个名为bootstrapper的工具,可以从blob存储下载并解压缩。看看这里:http://bootstrap.codeplex.com – dunnry