Inventory Archives

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
(Usage)
(save iar)
(47 intermediate revisions by 9 users not shown)
Line 1: Line 1:
__NOTOC__
+
{{Quicklinks}}
{{Template:Quicklinks}}
+
 
<br />
 
<br />
  
==Introduction==
+
= Introduction =
  
OpenSim Inventory Archives (IARs) are a means by which inventory folders and items can be saved offline to a single file (an IAR). This file can then be loaded into a different OpenSim installation.
+
OpenSimulator Inventory Archives (IARs) are a means by which inventory folders and items can be saved offline to a single file (an IAR). This file can then be loaded into a different OpenSimulator installation.
  
Like [[OpenSim Archives|OpenSim_Archives]], IARs save all the necessary asset data required to fully restore the items including textures, sounds, scripts and objects contained in the inventory of other objects.
+
Like [[OpenSim Archives]], IARs save all the necessary asset data required to fully restore the items including textures, sounds, scripts and objects contained in the inventory of other objects.
  
IARs have been enabled in OpenSim since Git revision 5a64ca (OpenSim 0.6.7 and later).
+
IARs have been enabled in OpenSimulator since Git revision 5a64ca (OpenSimulator 0.6.7 and later).
  
==Usage==
+
= Usage =
  
IARs are saved and loaded from the region console.  Before performing either of these operations the user that owns the inventory to be used must be present in one of the regions run by the region simulator.
+
IARs are saved and loaded from the region console.  By default, they are saved to the /bin directory of your installation, and an IAR file must be located in the /bin directory to be imported.
  
===save iar===
+
== save iar ==
  
 
The command to save an IAR on the region console is
 
The command to save an IAR on the region console is
  
  save iar <user name> <path> <password> [<filename>]
+
  save iar [-h|--home=<url>] [-v|--verbose] [--noassets] [--perm=<permissions>] <user-name> <path> <password> [<filename>]
  
 
where  
 
where  
  
* <user name> is the name of the user to save inventory from
+
* <user-name> is the name of the user to save inventory from
  
* <path> is the path to an inventory item or folder. If the path is for a folder, that folder and all its contents (both descendant folders and items) are saved. If the path is for an item, then only that item is saved.
+
* <path> is the path to an inventory item or folder. If the path is for a folder, that folder and all its contents (both descendant folders and items) are saved. If the path is for an item, then only that item is saved.  
  
Components of the path are separated by a forward slash ("/"). If you need to specify a path with spaces, you can surround the whole thing with double quotation marks (e.g. "Folder A/Folder B").
+
Components of the path are separated by a forward slash ("/"). If you need to specify a path with spaces, you can surround the whole thing with double quotation marks (e.g. "Folder A/Folder B").  
  
If a name or folder contains a forward slash ("/") then it can be escaped with the backslash (i.e. "\/") to stop it being seen as a path separator. Back slashes themselves need to be escaped with another backslash (i.e. "\\").
+
You can specify that the contents of a folder should be saved rather than the folder itself using the * wildcard. For instance, "a/b/*" will save the contents of folder b but not folder b itself.
 +
 
 +
If a name or folder contains a forward slash ("/") then it can be escaped with the backslash (i.e. "\/") to stop it being seen as a path separator. Back slashes themselves need to be escaped with another backslash (i.e. "\\").
  
 
One further issue here is that it's not possible to distinguish between identically named folders or items on the path - the workaround is to rename your items/folders if you need to specify them in the path :)
 
One further issue here is that it's not possible to distinguish between identically named folders or items on the path - the workaround is to rename your items/folders if you need to specify them in the path :)
Line 35: Line 36:
 
* <password> is the password of the user.
 
* <password> is the password of the user.
  
* <filename> is an optional filename for the IAR. If none is supplied, then the filename user-inventory.iar is used in the current directory. I recommend that iars have the .iar extension.
+
* <filename> is an optional filename for the IAR. If none is supplied, then the filename user-inventory.iar is used in the current directory. I recommend that iars have the .iar extension.
 +
 
 +
=== Switches ===
 +
 
 +
* If the --noassets option is specified, then the archive will be saved without assets. This can be handy if you're backing up the asset database separately and don't want the expense of including all the assets in each archive.
 +
* --home=<url> is the URL of this world's profile service. It is not required that the profile service is operational; the information will be saved, and it will be displayed wherever the archive will be loaded. NOTE: the older --profile option (the previous name of this switch) produced IARs that are not compatible with OpenSimulator 0.7.0.2 and earlier; do not use this option if you want to produce a compatible IAR.
 +
* --verbose prints out versbose saving messages
 +
* If the --perm option is specified then items with insufficient permissions will not be saved to the IAR. This can be useful for grids that allow their customers to export their inventorys to IARs, because it ensures that exporting to IAR can't be used to bypass content permissions.
 +
 
 +
<permissions> specifies which permissions are required. It's a string that contains one or more of these characters:
 +
* "C" = Copy
 +
* "T" = Transfer
 +
* "M" = Modify
  
====Examples====
+
=== Examples ===
  
Here's an example. Suppose you have an inventory structure like this
+
Here's an example. Suppose you have an inventory structure like this
  
 
  My Inventory
 
  My Inventory
Line 53: Line 66:
 
If you type  
 
If you type  
  
  save iar John Doe FolderA password
+
  save iar John Doe FolderA PASSWORD my-items.iar
  
then FolderA and everything in FolderA (FolderB, ItemX and ItemY) will be saved. On the other hand, if you type
+
then FolderA and everything in FolderA (FolderB, ItemX and ItemY) will be saved into an IAR called my-items.iar. On the other hand, if you type
  
  save iar John Doe FolderA/FolderB/ItemX password
+
  save iar John Doe FolderA/FolderB/ItemX PASSWORD my-items.iar
  
 
then only ItemX will be saved.
 
then only ItemX will be saved.
  
Since no filename was specified in either of these cases, the items or folders will be saved to a file called user-inventory.iar
+
If there is a space in the path to the item, for example if John Doe's folder was named "Folder A" instead of "FolderA", then quotes around the path are necessary on the command line:
  
Typing
+
save iar John Doe "Folder A/FolderB/ItemX" PASSWORD my-items.iar
  
save iar John Doe / password
+
==== Saving an entire user's inventory ====
  
would save your entire inventory to user-inventory.iar
+
With save iar you can save your entire inventory as well as the contents of particular folders or individual items.
  
===load iar===
+
For instance, typing
 +
 
 +
save iar John Doe /* password
 +
 
 +
would save your entire inventory to user-inventory.iar (since no filename was given).  This can later be restored using the --merge switch in the load iar command.  For more details please see the "Restoring an entire user's inventory" section below.
 +
 
 +
'''Please note that for OpenSimulator 0.7.5 and before, the path for save iar must be specified as "/*" and not just "/".  Specifying only "/" will still save the entire inventory but there will be a base folder called "My Inventory", which will be created on reload under a user's existing "My Inventory" folder.'''
 +
 
 +
'''From OpenSimulator git master dev code commit d54d3180 (Sat Feb 16 00:49:06 2013), "/" will also instead save the user's entire inventory without the "My Inventory" folder.  This is because "My Inventory" is not actually a real folder but rather the name of the user's inventory.  I believe this is more intuitive and it means that inventories saved using / can be restored using the load iar --merge function as well.  This change will be in the next OpenSimulator release (0.7.6). -- [[User:Justincc|Justincc]] 02:26, 16 February 2013 (UTC)'''
 +
 
 +
== load iar ==
  
 
An IAR can be reloaded to an OpenSimulator instance with the load iar command
 
An IAR can be reloaded to an OpenSimulator instance with the load iar command
  
  load iar <user name> <path> <password> [<filename>]
+
  load iar [-m|--merge] <user-name> <path> <password> [<filename>]
  
 
where
 
where
Line 79: Line 102:
 
* <user name> is the name of the user to whom to load the inventory
 
* <user name> is the name of the user to whom to load the inventory
  
* <path> is the path to which the IAR should be loaded. This has to be a folder which already exists in "My Inventory". See the save iar command for more details.
+
* <path> is the path to which the IAR should be loaded. This has to be a folder which already exists in "My Inventory". See the save iar command for more details.
  
 
* <password> is the password of the user.
 
* <password> is the password of the user.
  
* [<filename>] is an optional filename for the IAR. If none is specified, then the filename is assumed to be user-inventory.iar in the current directory.
+
* [<filename>] is an optional filename for the IAR. If none is specified, then the filename is assumed to be user-inventory.iar in the current directory.
  
====Examples====
+
=== Switches ===
  
Again, here's an example.  Suppose that "David Hume" has recieved the IAR above containing FolderA, FolderB, ItemX and ItemY. David Hume already has an inventory structure like this.
+
* If the --merge option is given, then IAR items are loaded into the existing folder structure where possible, instead of always creating new folders.
 +
 
 +
=== Examples ===
 +
 
 +
1.  Suppose that "David Hume" has recieved the my-items.iar saved above containing FolderA, FolderB, ItemX and ItemY. David Hume already has an inventory structure like this.  
  
 
  My Inventory
 
  My Inventory
  |
+
  |
  +-- Folder1
+
  +-- Folder1
        |   
+
        |   
        +-- Folder2
+
        +-- Folder2
        |       
+
        |       
        +-- Folder3
+
        +-- Folder3
  
David wants to load the IAR to Folder3, so on the region console he executes
+
David wants to load the IAR to Folder3, so on the region console he executes  
  
  load iar David Hume Folder1/Folder3 password
+
  load iar David Hume Folder1/Folder3 password my-items.iar
  
After a little while he ends up with the folder structure
+
After a little while he ends up with the folder structure  
  
 
  My Inventory
 
  My Inventory
  |
+
  |
  +-- Folder1
+
  +-- Folder1
        |   
+
        |   
        +-- Folder2
+
        +-- Folder2
        |
+
        |
        +-- Folder3  
+
        +-- Folder3  
              |
+
              |
              +-- FolderA
+
              +-- FolderA
              |   
+
              |   
              +-- FolderB
+
              +-- FolderB
              |      |
+
              |      |
              |      +-- ItemX
+
              |      +-- ItemX
              |
+
              |
              +-- ItemY
+
              +-- ItemY
 +
 
 +
where ItemX and ItemY are ready for rezzing.
 +
 
 +
If there is a space in the path to the item, for example if David's folder was named "Folder 1" instead of "Folder1", then quotes around the path are necessary on the command line:
  
where ItemX and ItemY are ready for rezzing.
+
load iar David Hume "Folder 1/Folder3" password my-items.iar
  
From OpenSim 0.7-rc1 and onwards, you can also load IARs directly from web addresses. For example
+
From OpenSimulator 0.7 and onwards, you can also load IARs directly from web addresses. For example  
  
 
  load iar Betrand Russell Folder2 PASSWORD http://justincc.org/downloads/iars/my-great-items.iar
 
  load iar Betrand Russell Folder2 PASSWORD http://justincc.org/downloads/iars/my-great-items.iar
  
will load my-great-items from the web into Folder2 of the user "Bertrand Russell".
+
will load my-great-items.iar from the web into Folder2 of the user "Bertrand Russell".  
  
== IAR files==
+
2.  Let's suppose that a user called Albert Camus has an existing inventory structure
  
[http://justincc.org/downloads/iars/my-great-items.iar http://justincc.org/downloads/iars/my-great-items.iar] - justincc's initial example IAR.
+
My Inventory
 +
  |
 +
  +-- FolderA
 +
  |    |
 +
  |    +-- Item1
 +
  |
 +
  +-- FolderC
 +
        |
 +
        +-- Item2
  
+
and we execute
  
Please feel free to place links to other IARs here.
+
load iar --merge Albert Camus / PASSWORD my-items.iar
  
==Further Information==
+
with the IAR saved above. Instead of creating a duplicate FolderA, this will instead result in the inventory structure
  
[http://justincc.org/blog/category/iars/ http://justincc.org/blog/category/iars/] - articles by justincc on IARs, including tutorials, background information and possible future developments.
+
My Inventory
 +
  |
 +
  +-- FolderA
 +
  |    |
 +
  |    +-- FolderB
 +
  |    |      |
 +
  |    |      +-- ItemX
 +
  |    |
 +
  |    +-- Item1
 +
  |    |
 +
  |    +-- ItemY
 +
  |
 +
  +-- FolderC
 +
        |
 +
        +-- Item2
 +
 
 +
==== Restoring an entire user's inventory ====
 +
 
 +
The --merge option is useful if you are restoring a saved inventory to a new user account, since the base folders (Gestures, Landmarks, Objects, etc.) will not be duplicated.
 +
 
 +
For instance, if you have saved a whole user's inventory as detailed above, you can restore it to a freshly created user's inventory with the command.
  
[http://www.metaverseink.com/blog/?p=29 The OpenSim Library just got more interesting] - Diva Canto's article on how to extend the OpenSim Library using IARs.
+
load iar --merge Albert Camus / PASSWORD my-inventory.iar
  
==Use cases==
+
= Use cases =
  
 
Possible uses
 
Possible uses
  
1. To distribute content to other OpenSim installations without need to transfer entire regions. One drawback with IARs for this use case is that creator names are not preserved unless the user has a profile on the target installation. One workaround is to include a notecard detailing the creator and license conditions of the content.
+
1. To distribute content to other OpenSimulator installations without need to transfer entire regions. One drawback with IARs for this use case is that creator names are not preserved unless the user has a profile on the target installation. One workaround is to include a notecard detailing the creator and license conditions of the content.
  
2. To backup a user's inventory. IARs are currently not that great for this. One can backup an entire inventory by giving a path of "/" to the save iar command. But a load IAR of the same will mean a duplicate set of root child 'standard' folders (Objects, Textures, Clothing, etc.). The loaded folders will not have any type icons.
+
2. To backup a user's inventory. IARs are currently not that great for this. One can backup an entire inventory by giving a path of "/" to the save iar command. But a load IAR of the same will mean a duplicate set of root child 'standard' folders (Objects, Textures, Clothing, etc.). The loaded folders will not have any type icons.
  
==Current limitations==
+
== Current limitations ==
  
* IAR loading and saving is currently done on a single thread. This may lock up the console for a while with very large IARs. This should be addressed in the future
+
* IAR loading and saving is currently done on a single thread. This may lock up the console for a while with very large IARs. This should be addressed in the future
  
* Creator names are not preserved unless the profile exists on the target system. This problem may be addressed in the future.
+
* Creator names are not preserved unless the profile exists on the target system. This problem may be addressed in the future.
  
==File Formats==
+
== IAR Format ==
  
[[IAR Format|IAR File Formats]]
+
The OpenSimulator [[Inventory Archives|Inventory Archive (IAR)]] format is designed with three aims in mind:
  
==FAQ==
+
# Make it easy for people to read and update individual items, assets, etc. within an archive.
 +
# Make it easy to compose two inventory archives into a single inventory archive.
 +
# Make it easy to compose archives from scratch.
  
Nothing yet.
+
Therefore, all the different entities (assets, items, etc.) are packaged in individual files (e.g. one for each asset) with human readable filenames and machine readable extensions (e.g. .jp2 for textures, .txt for notecards).
 +
* [[IAR Format 0.1]]
 +
* [[IAR Format 0.2]]
 +
* [[IAR Format 0.3]]
  
== Bugs ==
+
= Bugs =
  
Please search the OpenSim Mantis for information on current IAR bugs.  
+
Please search the OpenSimulator Mantis for information on current IAR bugs.  
  
 
FEB.23.2010:  
 
FEB.23.2010:  
Line 175: Line 239:
 
'''[mysqld]'''  
 
'''[mysqld]'''  
  
#The TCP/IP Port the MySQL Server will listen on<br>port=3306<br>max_allowed_packet = 16M
+
# The TCP/IP Port the MySQL Server will listen on<br />port=3306<br />max_allowed_packet = 16M
  
 
'''Additional Reference''':&nbsp; [http://dev.mysql.com/doc/refman/5.1/en/packet-too-large.html dev.mysql.com/doc/refman/5.1/en/packet-too-large.html]
 
'''Additional Reference''':&nbsp; [http://dev.mysql.com/doc/refman/5.1/en/packet-too-large.html dev.mysql.com/doc/refman/5.1/en/packet-too-large.html]
  
==Current Status==
+
= Current Status =
  
Operational but experimental. Bug reports are appreciated and there will almost certainly be quite a few right now.  Suggestions for improvement are also welcome.  The best place for these right now might be [http://justincc.org/blog/2009/09/14/introducing-opensim-inventory-archives-iars/ my blog post on IARs], since I'm bound to see them then.
+
Operational. Bug reports appreciated through the usual Mantis channels.
  
 
Though we will strive to maintain compatibilty for old archives with newer OpenSimulator versions, please do not rely on these archives as your only backup for inventory.
 
Though we will strive to maintain compatibilty for old archives with newer OpenSimulator versions, please do not rely on these archives as your only backup for inventory.
  
 +
= Downloadable IAR files =
 +
 +
* http://justincc.org/downloads/iars/my-great-items.iar - justincc's initial example IAR.
 +
* http://www.aviefactory.com/Gene_Jacobs_Clothes.iar - Gene Jacobs Men's Clothing Collection (Original Creator)
 +
* http://www.aviefactory.com/Genes_Female_Stuff.iar - Female Skins and Shapes (Found off the web)
 +
* http://www.gridhop.net/IAR/lightshare.iar - [[User:Thomax|txOh]]'s LightShare controller. Useful only if you have [[LightShare]] enabled in OpenSim.ini.
 +
 +
Please feel free to place links to other IARs here.
 +
 +
= External Links =
 +
 +
[http://justincc.org/blog/category/iars/ http://justincc.org/blog/category/iars/] - articles by justincc on IARs, including tutorials, background information and possible future developments.
 +
 +
[http://www.metaverseink.com/blog/?p=29 The OpenSimulator Library just got more interesting] - Diva Canto's article on how to extend the OpenSimulator Library using IARs.
 +
 +
= See Also =
 +
 +
* [[OpenSim Archives|How to use OpenSimulator Archives (OAR)]]
  
 
[[Category:Users]]
 
[[Category:Users]]
 
[[Category:Support]]
 
[[Category:Support]]
[[Category:Tech Reference]]  
+
[[Category:Tech Reference]]
 
[[Category:Help]]
 
[[Category:Help]]
 
[[Category:Configuration]]
 
[[Category:Configuration]]
[[Category:Getting_Started]]
+
[[Category:Getting Started]]
 
[[Category:Development]]
 
[[Category:Development]]

Revision as of 18:34, 26 September 2014


Contents

Introduction

OpenSimulator Inventory Archives (IARs) are a means by which inventory folders and items can be saved offline to a single file (an IAR). This file can then be loaded into a different OpenSimulator installation.

Like OpenSim Archives, IARs save all the necessary asset data required to fully restore the items including textures, sounds, scripts and objects contained in the inventory of other objects.

IARs have been enabled in OpenSimulator since Git revision 5a64ca (OpenSimulator 0.6.7 and later).

Usage

IARs are saved and loaded from the region console. By default, they are saved to the /bin directory of your installation, and an IAR file must be located in the /bin directory to be imported.

save iar

The command to save an IAR on the region console is

save iar [-h|--home=<url>] [-v|--verbose] [--noassets] [--perm=<permissions>] <user-name> <path> <password> [<filename>]

where

  • <user-name> is the name of the user to save inventory from
  • <path> is the path to an inventory item or folder. If the path is for a folder, that folder and all its contents (both descendant folders and items) are saved. If the path is for an item, then only that item is saved.

Components of the path are separated by a forward slash ("/"). If you need to specify a path with spaces, you can surround the whole thing with double quotation marks (e.g. "Folder A/Folder B").

You can specify that the contents of a folder should be saved rather than the folder itself using the * wildcard. For instance, "a/b/*" will save the contents of folder b but not folder b itself.

If a name or folder contains a forward slash ("/") then it can be escaped with the backslash (i.e. "\/") to stop it being seen as a path separator. Back slashes themselves need to be escaped with another backslash (i.e. "\\").

One further issue here is that it's not possible to distinguish between identically named folders or items on the path - the workaround is to rename your items/folders if you need to specify them in the path :)

  • <password> is the password of the user.
  • <filename> is an optional filename for the IAR. If none is supplied, then the filename user-inventory.iar is used in the current directory. I recommend that iars have the .iar extension.

Switches

  • If the --noassets option is specified, then the archive will be saved without assets. This can be handy if you're backing up the asset database separately and don't want the expense of including all the assets in each archive.
  • --home=<url> is the URL of this world's profile service. It is not required that the profile service is operational; the information will be saved, and it will be displayed wherever the archive will be loaded. NOTE: the older --profile option (the previous name of this switch) produced IARs that are not compatible with OpenSimulator 0.7.0.2 and earlier; do not use this option if you want to produce a compatible IAR.
  • --verbose prints out versbose saving messages
  • If the --perm option is specified then items with insufficient permissions will not be saved to the IAR. This can be useful for grids that allow their customers to export their inventorys to IARs, because it ensures that exporting to IAR can't be used to bypass content permissions.

<permissions> specifies which permissions are required. It's a string that contains one or more of these characters:

  • "C" = Copy
  • "T" = Transfer
  • "M" = Modify

Examples

Here's an example. Suppose you have an inventory structure like this

My Inventory
  |
  +-- FolderA
        |  
        +-- FolderB
        |      |
        |      +-- ItemX
        |
        +-- ItemY

If you type

save iar John Doe FolderA PASSWORD my-items.iar

then FolderA and everything in FolderA (FolderB, ItemX and ItemY) will be saved into an IAR called my-items.iar. On the other hand, if you type

save iar John Doe FolderA/FolderB/ItemX PASSWORD my-items.iar

then only ItemX will be saved.

If there is a space in the path to the item, for example if John Doe's folder was named "Folder A" instead of "FolderA", then quotes around the path are necessary on the command line:

save iar John Doe "Folder A/FolderB/ItemX" PASSWORD my-items.iar

Saving an entire user's inventory

With save iar you can save your entire inventory as well as the contents of particular folders or individual items.

For instance, typing

save iar John Doe /* password

would save your entire inventory to user-inventory.iar (since no filename was given). This can later be restored using the --merge switch in the load iar command. For more details please see the "Restoring an entire user's inventory" section below.

Please note that for OpenSimulator 0.7.5 and before, the path for save iar must be specified as "/*" and not just "/". Specifying only "/" will still save the entire inventory but there will be a base folder called "My Inventory", which will be created on reload under a user's existing "My Inventory" folder.

From OpenSimulator git master dev code commit d54d3180 (Sat Feb 16 00:49:06 2013), "/" will also instead save the user's entire inventory without the "My Inventory" folder. This is because "My Inventory" is not actually a real folder but rather the name of the user's inventory. I believe this is more intuitive and it means that inventories saved using / can be restored using the load iar --merge function as well. This change will be in the next OpenSimulator release (0.7.6). -- Justincc 02:26, 16 February 2013 (UTC)

load iar

An IAR can be reloaded to an OpenSimulator instance with the load iar command

load iar [-m|--merge] <user-name> <path> <password> [<filename>]

where

  • <user name> is the name of the user to whom to load the inventory
  • <path> is the path to which the IAR should be loaded. This has to be a folder which already exists in "My Inventory". See the save iar command for more details.
  • <password> is the password of the user.
  • [<filename>] is an optional filename for the IAR. If none is specified, then the filename is assumed to be user-inventory.iar in the current directory.

Switches

  • If the --merge option is given, then IAR items are loaded into the existing folder structure where possible, instead of always creating new folders.

Examples

1. Suppose that "David Hume" has recieved the my-items.iar saved above containing FolderA, FolderB, ItemX and ItemY. David Hume already has an inventory structure like this.

My Inventory
 |
 +-- Folder1
       |  
       +-- Folder2
       |      
       +-- Folder3

David wants to load the IAR to Folder3, so on the region console he executes

load iar David Hume Folder1/Folder3 password my-items.iar

After a little while he ends up with the folder structure

My Inventory
 |
 +-- Folder1
       |  
       +-- Folder2
       |
       +-- Folder3 
             |
             +-- FolderA
             |  
             +-- FolderB
             |      |
             |      +-- ItemX
             |
             +-- ItemY

where ItemX and ItemY are ready for rezzing.

If there is a space in the path to the item, for example if David's folder was named "Folder 1" instead of "Folder1", then quotes around the path are necessary on the command line:

load iar David Hume "Folder 1/Folder3" password my-items.iar

From OpenSimulator 0.7 and onwards, you can also load IARs directly from web addresses. For example

load iar Betrand Russell Folder2 PASSWORD http://justincc.org/downloads/iars/my-great-items.iar

will load my-great-items.iar from the web into Folder2 of the user "Bertrand Russell".

2. Let's suppose that a user called Albert Camus has an existing inventory structure

My Inventory
 |
 +-- FolderA
 |     |
 |     +-- Item1
 |
 +-- FolderC
       |
       +-- Item2

and we execute

load iar --merge Albert Camus / PASSWORD my-items.iar

with the IAR saved above. Instead of creating a duplicate FolderA, this will instead result in the inventory structure

My Inventory
 |
 +-- FolderA
 |     |
 |     +-- FolderB
 |     |      |
 |     |      +-- ItemX
 |     |
 |     +-- Item1
 |     |
 |     +-- ItemY
 |
 +-- FolderC
       |
       +-- Item2

Restoring an entire user's inventory

The --merge option is useful if you are restoring a saved inventory to a new user account, since the base folders (Gestures, Landmarks, Objects, etc.) will not be duplicated.

For instance, if you have saved a whole user's inventory as detailed above, you can restore it to a freshly created user's inventory with the command.

load iar --merge Albert Camus / PASSWORD my-inventory.iar

Use cases

Possible uses

1. To distribute content to other OpenSimulator installations without need to transfer entire regions. One drawback with IARs for this use case is that creator names are not preserved unless the user has a profile on the target installation. One workaround is to include a notecard detailing the creator and license conditions of the content.

2. To backup a user's inventory. IARs are currently not that great for this. One can backup an entire inventory by giving a path of "/" to the save iar command. But a load IAR of the same will mean a duplicate set of root child 'standard' folders (Objects, Textures, Clothing, etc.). The loaded folders will not have any type icons.

Current limitations

  • IAR loading and saving is currently done on a single thread. This may lock up the console for a while with very large IARs. This should be addressed in the future
  • Creator names are not preserved unless the profile exists on the target system. This problem may be addressed in the future.

IAR Format

The OpenSimulator Inventory Archive (IAR) format is designed with three aims in mind:

  1. Make it easy for people to read and update individual items, assets, etc. within an archive.
  2. Make it easy to compose two inventory archives into a single inventory archive.
  3. Make it easy to compose archives from scratch.

Therefore, all the different entities (assets, items, etc.) are packaged in individual files (e.g. one for each asset) with human readable filenames and machine readable extensions (e.g. .jp2 for textures, .txt for notecards).

Bugs

Please search the OpenSimulator Mantis for information on current IAR bugs.

FEB.23.2010:

There is a slight "quirk" with MySql in regards to Max_Allowed_Packet size, which the default is 1 Megabyte.  This is too small for some of the larger data blobs being stored.  It is recomended to increase the default value to 16 Megabytes.

Locate your MY.ini for MySql (EXAMPLE, in Windows it is located @ "C:\Program Files\MySQL\MySQL Server 5.1")  Modify this file to include the following under the mysqld section:

[mysqld]

  1. The TCP/IP Port the MySQL Server will listen on
    port=3306
    max_allowed_packet = 16M

Additional Referencedev.mysql.com/doc/refman/5.1/en/packet-too-large.html

Current Status

Operational. Bug reports appreciated through the usual Mantis channels.

Though we will strive to maintain compatibilty for old archives with newer OpenSimulator versions, please do not rely on these archives as your only backup for inventory.

Downloadable IAR files

Please feel free to place links to other IARs here.

External Links

http://justincc.org/blog/category/iars/ - articles by justincc on IARs, including tutorials, background information and possible future developments.

The OpenSimulator Library just got more interesting - Diva Canto's article on how to extend the OpenSimulator Library using IARs.

See Also

Personal tools
General
About This Wiki