从 Xamarin 客户端 SDK 删除 ROS 上的 .realm 文件

Delete .realm file on ROS from Xamarin client SDK

我正在使用 ROS 2.0Xamarin 的最新客户端 SDK。在我的应用程序中,用户有多个 DataStore 对象(每个对象由一个单独的领域表示)。用户可以创建和删除 DataStores(领域)。创建工作正常,但调用 Realm.DeleteRealm(someDataStore.Realm.Config); 不会删除服务器上的领域文件。

我正在处理 Realm,然后尝试通过调用删除它:

someDataStore.Realm.Dispose();
Realm.DeleteRealm(someDataStore.Realm.Config);

但它仍然存在于 ROS。由于 Realm Studio 不支持删除领域文件,如何从 ROS?

中清除未使用的领域

你是对的 - 按照设计,Realm.DeleteRealm 方法只会删除本地副本,不会删除远程 Realm。如果你完全确定你需要删除远程领域,你可以使用 ROS 的 REST API 来这样做:

wget --method DELETE --header 'Authorization: %ADMIN-TOKEN%' http://%ROS-URL%/realms/files/%REALM-PATH%

哪里

  • %REALM-PATH% 是要删除的 Realm 文件的 url 编码虚拟路径,例如/some-user-id/myrealm 将变为 some-user-id%2Fmyrealm
  • %ADMIN-TOKEN% 可以在 %PATH-TO-ROS%/data/keys/admin.json.
  • 中找到
  • %ROS-URL% 显然是你的 ROS 实例的 url。

请记住,如果您删除了远程文件,您还应该从所有与之同步的应用程序中删除任何本地副本,否则您会收到错误消息(即本地副本不会尝试重新同步本身与删除的远程一个)。