[Opensim-users] Web delivery
Jeff Kelley
opensim at pescadoo.net
Sat Nov 1 03:11:41 UTC 2014
At 11:45 PM +0000 31/10/14, Justin Clark-Casey wrote:
>You may want to look at
>OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveModule.UpdateClientWithLoadedNodes().
That's the method I need, although it is not exposed externally. I
can call it from inside the simulator, not via HTTP. Correct me if I
am wrong.
>In fact, you might be able to do this with less work by actually
>uploading an IAR, though
>you will have to be careful about security. Assuming that your
>picture shows media on
>a prim here are my naive thoughts.
Yes, the picture shows media on a prim. It's pure PHP+SQL+jQuery. It
gots the .jp2. There should be no difficulty building an IAR (except
headache).
>1) Extend RemoteAdmin [RADMIN] with an "admin_load_iar" command
My ability to code in C# is low and I never had a look to the
sources, so this one will be tough. Let's suppose I succeed.
>2) Encode the region UUID in the MOAP url. Getting the user UUID is
>more complicated with no scripting. Immediate thought is require
>them to have an account in the web application.
ATM, the delivery is trigerred by JavaScript inside the web page. It
can be replaced by a script doing HTTP. I get the region name
(X-SecondLife-Region) which I should be able to translate to UUID
using the database or calling GridService. The user UUID is trivial.
>3) Either only allow them to pick individual folders or items with
>pre-created IARs, or create an IAR on the fly from an arbitrary
>selection (much more involved). Either way the IAR has to end up in
>a location that all regions can access (e.g. a shared filesystem or
>an url).
The selection goes as low as a single texture. On-the-fly is
mandatory. Create the folder structure, generate the XML and tar.
>4) Get the user's current region via the PresenceService getagents
>call [PRESENCE].
Ah! I see you have documented a new batch of services. More API to
play with :))
>5) Use the GridService get_region_by_uuid call [GRID] to retrieve
>the server URI.
I already get the serverURI from the 'regions' table.
>6) Use the URL to invoke admin_load_iar with the user uuid and iar location.
You made my roadmap. However, if I manage to call
UpdateClientWithLoadedNodes, I can skip the IAR step.
>If you do end up simply adding inventory items directly, I recommend
>invoking service calls [SERVICES] rather than editing the database
>directly.
Yes, using InventoryService is cleaner than inserting a row in the
table. However, the items will not be available until relog.
> I have some working example PHP for invoking services at [INTEGRATION]
You just saved me a lot of work.
Thanks so much.
-- Jeff
More information about the Opensim-users
mailing list