[Opensim-users] Bulk Import Textures for Global Use

Roger BUCK rbuck at atomicit.com.au
Sat Feb 13 06:09:00 UTC 2010


We found that bulk upload of textures is possible but did not work as 
expected using any documentation that we were able to find.

We did have limited success but Particular problem include:
  1. unable to create archives containing sub-folders (not possible to 
save or load archives more than one folder level deep)

  2. obtained sharing violation errors when attemting to correct 
previous archive failure

  3. obtained path errors when source item path did not include a 
wildcard or a unique filename

In case anyone wishes to benefit form our success... or help solve our 
failure(s), here is what we did:

Having successfully imported textures for a single user using Meerkat, 
we attempted to create save these items to an Inventory Archive so that 
they may be accessible to all users as described in the wiki item 
available here:

http://opensimulator.org/wiki/Inventory_Archives

The procedure that we used is described  below in case anyone wants to 
repeat and/or can identify what we are doing wrong, or in case the 
limitations are result of a bug?

For example, to import the following texture collection (Torley 
Textures) into diva distro:

http://torley.com/torley-textures-available-for-download-in-a-single-zip-pack

We first downloaded and unzipped the 'Torley Textures' collection and 
unzipped to workstation where we had pre-installed or Meerkat browser 
(link to Torley textures collection link mentioned above).

To import our textures, we performed following procedure:
1. Open Meerkat browser and click on 'Inventory' button on RHS

2. Click on 'My Inventory' to open the folder list

3. Right-click on 'Textures' -> 'New Folder' and create new folder named 
'Torley Textures'

4. Right click on the new folder, and create a new subfolder called 
'Torley Textures I'

5. Click on the Meerkat Menu Bar 'File' button (top LHS menu bar) and 
choose the 'Bulk Upload (L$0 per file)' menu item
Roger wrote:

6. Browse to the folder named 'Torley Textures' that was created by 
unzipping the 'Torley-Textures.zip' texture archive file.

7. You should see a list of sub-folders (including folder names 'Torley 
Textures I', 'Torley Textures II' and so on...).

8: Open the 'Torley Textures I' folder and Shift-click your mouse to 
select all of the *.png files in that folder, then click on 'Open'
  - You should see a number of images start to appear on your screen as 
each of the new texture image files is uploaded into you inventory: This 
may take a few minutes... You may also see a popup message "You paid L$0 
to upload". To clear that message, you may first have to close your 
session (File -> Quit) and then log back in.
9. When you next login, you should see that your newly imported textures 
now appear inside:
    'Inventory->My Inventory->Torley Textures->Torley Textures I'

Repeat steps 5 to 9 to import contents of additional folders. The names 
of your own folders do not need to match the names of the folders that 
you are importing

It is possible to copy + paste + delete one or more textures if you wish 
to re-locate them in an alternative folders.

The above procedure is based on this suggestion:

James Stallings II wrote:
 > 1. Upload all textures you wish to provide to a single avatar
 >  account.
 > 2. Create a single working folder with optional subfolders
 > to prepare a logically organized collection of textures for
 > presentation to the user.
 > 3. save iar *only that folder* (the working folder mentioned
 > previously) that contains the textures you wish to make
 > available in the library.
 > 4. move/copy the iar file per Diva's instructions.

Having imported next textures, we attempted to create an archive file so 
that we could make the new textures easily available to all users as 
described here:

http://opensimulator.org/wiki/Inventory_Archives

diva at metaverseink.com wrote:
> Import them to one user's inventory, then make an IAR from it. 
> Then lace that IAR under bin/Library -- that will place it
> under the Library  for everyone to use.
> 
> Roger BUCK wrote:
>> Using latest diva distro on linux box, how can we bulk import 
>> textures so that they may be available for use by all users?
>>
>> For example, what procedure would be required to import the
>> following texture collection into diva:
>>
>> http://torley.com/torley-textures-available-for-download-in-a-single-zip-pack

To complete the above, we connected to opensim server region console 
screen to create an archive file: 'To_Library.iar'

10. Make sure that the user from whom you wish to export the newly 
created textures is logged into the region from which you wish to export 
the new archive - this means that you have to login from Meerkat browser 
  while you are performing the export via the region console on the server

11: Enter following command from region console screen (depending on 
your folder names):

save iar Joe Blo "Texture/Torley Textures" pass Library/To_Library.iar

Above command  should be entered all on one line.

According to docs, this should create an archive file that includes 
content from sub-folder tree (including
   'Texture/Torley Textures/Torley Textures I/*'
   'Textures/Torely Textures/Torley Textures II/*'
    ...
and so on - but we had no luck with this. We found that we had to create 
a unique archive for the contents of each folder.

Creating archives (using above method) that includes collections of 
sub-folders did not seem to work.

Error messages:
16:25:45 - Command error: System.IO.IOException: Invalid argument(s) 
WriteInternal at System.IO.Compression.DeflateStream.CheckResult (Int32 
result, System.String where) [0x00000] in <filename unknown>:0

The above process also leaves behind a failed copy of the .iar file that 
will cause subsequent save commands to fail with error message:
16:29:25 - Command error: System.IO.IOException: Sharing violation on 
path /opt/opensim/bin/Library/To_Library.iar

16:19:36 - [INVENTORY ARCHIVER]: Saving archive Texture_Library.iar 
using inventory path Torley Textures for Joe Blo
16:19:36 - [INVENTORY SERVICE]: Found 0 items and 14 folders in folder 
2a1c9146-ff29-4a99-9053-567a2d387d9b
16:19:36 - [INVENTORY ARCHIVER]: Aborted save.  Could not find inventory 
path Torley Textures

To successfully create an archive file, it seems you must create a 
unique archive for each folder and use a wildcard character or unique 
file name on the path - for example, this should work for above example 
names:


save iar Joe Blo "Textures/Torley Textures/Torley Textures I/*" pass 
Library/To_Library.iar

Again, the above command all on one line and notice the trailing slash 
and wildcard: '/*'

If you see a 'sharing violation' error or 'inventory path' error - then 
remove the old copy of To_Library.iar file above and re-try using a 
valid path (may take some experimentation to find correct path - also 
note use of quotation marks to specify paths in case they include 
white-space)

In our above example, when correctly saved, the To_Library.iar file had 
a size of 4004991 bytes

We were unable to create an archive file that included sub-folders - 
Instead, we had to create a unique archive for each foler  - as per 
examples:
filesize | IAR archive name
---------+------------------------------
  7823300  Torley_Textures_Desat_Library.iar
  1967632  Torley_Textures_Dreams_Library.iar
  2464933  Torley_Textures_III_Library.iar
  4926587  Torley_Textures_II_Library.iar
  4096408  Torley_Textures_IV_Library.iar
... and so on

In case any has suggestions, please reply and we will test and post results.

R.



More information about the Opensim-users mailing list