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

标签 c# azure azure-blob-storage spatialite

我有一个在 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/

相关文章:

c# - 将 JSON 反序列化为在局部 View 中呈现的模型(restsharp 或任何其他方法)

azure - 在复制事件中过滤 blob 数据

azure - Mac 中的 Powershell 问题

azure - 使用共享访问签名从 Azure Blob 服务访问 blob 时是否可以定义自定义错误?

json - 控制哪些 blob 被索引 azure 搜索

c++ - Azure C++ 库 : "Invalid streambuf object"

c# - CLR:常量字符串值在内存中的生命周期是多长?

c# - 这个异步任务方法有什么问题?

c# - Windows登录c#之前打开表单

Azure API 管理 + Azure Function 和托管标识