0

背景:

  • Xamrin 表单客户端应用程序
  • 带有点网的 Azure 后端
  • 使用 Azure 离线数据同步
  • 尝试使用 Azure 脱机文件同步

相关的 SO 问题 我在这里问了另外 2 个问题,这些问题与 使用 Azure 文件同步时获取 404有点相关

使用 Azure 文件同步时获得 500

解决方案 如上面第一个链接中所述,即使我不打算为用户使用文件,我也必须为用户实体创建一个存储控制器才能成功登录。

当我在应用程序中进一步工作时,我仍然会收到更多 404 错误,正如我在提琴手中看到的那样。这些是类似的调用,它们希望访问如下 API

GET /tables/{EntityName}/{Id}/MobileServ‌​iceFiles HTTP/1.1

我现在的问题 我是否需要为我的解决方案中的每个实体提供一个存储控制器?可能是从 EntityData 继承的每个实体?

有没有一种方法可以有选择地告诉系统哪些实体将使用文件并仅为它们提供存储控制器?就像,可能是用一些属性标记它们?

参考 我正在使用这篇博文在我的应用程序中实现 Azure 文件同步。

4

1 回答 1

0

回答我自己的问题(而不是我想听到的答案)是的。我们需要所有实体的存储控制器,即使它们没有任何文件要存储在存储帐户中。这是一个限制。在我关注的原始博客的评论中找到此信息(我希望我早点这样做),引用作者的话

Donna Malayeri [donnam@MSFT] Chris • 2 个月前 当前存储 SDK 的一个限制是您无法指定哪些表具有文件。请参阅此 GitHub 问题:https ://github.com/Azure/azure ...

作为一种解决方法,您必须创建自己的文件同步触发器工厂。这是一个示例:https ://github.com/azure-appse ...

SDK 为存储控制器中的文件调用 Get/Delete 的原因是服务器管理从记录到容器或 blob 名称的映射。例如,您不一定想让客户端访问 blob 帐户以访问任意文件或容器。在删除的情况下,服务器甚至不需要提供具有删除权限的 SAS 令牌,因为它只需验证用户身份并自行执行删除。

于 2016-09-28T09:51:24.800 回答