- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个在 Azure 中托管的 WCF 服务。
我有一个spatialite 数据库文件,将保存在Azure blob 存储(1.1G) 中。压缩后是500K。
我想在服务启动时将其复制到本地存储,然后使用spatialite在数据库文件上运行各种空间函数。空间数据是静态的。
有人有代码片段 (C#) 将文件从 azure blob 存储复制到本地存储吗?
(另外,我认为这种方法有意义 - 是吗?)
(另外,我是否应该压缩文件以进行 Blob 存储?)
谢谢
编辑:感谢前两个回复。我希望有一些代码片段可以使用。我可以用更多的解释来说明哪条路线更好。只需全部编码或使用此引导想法即可。
解决方案:我将 SMARX 标记为答案,因为它应该适用于任何 protected 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 属性配置本地存储
最佳答案
怎么样:CloudStorageAccount.Parse(...).CreateCloudBlobClient().GetBlobReference("path/of/blob").DownloadFile(RoleEnvironment.GetLocalResource("nameOfLocalResource").RootPath);
在执行其他操作之前,先在 OnStart 中的 RoleEntryPoint 中执行此操作吗?
关于c# - 如何将 Azure blob 文件复制到 Azure 本地存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7666264/
我是一名优秀的程序员,十分优秀!