[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