0

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

在尝试通过调用将其删除之前,我正在处理领域:

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

但它仍然存在ROS。由于 Realm Studio 不支持删除领域文件,如何清除未使用的领域ROS

4

1 回答 1

1

你是对的 - 按照设计,该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。

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

于 2017-11-12T21:32:02.003 回答