我有一个托管在 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 属性配置本地存储