A life twice-lived ...

ASSETSERVICE

The Asset Service replaces the legacy standalone Asset Server executable.

CONFIGURATION ITEMS

[AssetService] Configuration Item Default Example Description
AssetLoaderArgs Empty String assets/AssetSets.xml configure options for DefaultAssetLoader
AssetLoaderEnabled true true Should the Asset Loader be used?
AllowRemoteDelete
AllowRemoteDeleteAllTypes
AssetServerURI
ConnectionString
DefaultAssetLoader
LocalServiceModule
StorageProvider

AssetLoaderArgs

The configuration for the DLL loaded by DefaultAssetLoader.

This points to the filename which holds the default asset library folders available to viewers when connected.

These are configured as “Asset Sets” which map to the folders in inventory, and point to the files which contain a list of the specific assets in the folder.

Defaults to an empty string.

AssetLoaderEnabled

Should the Asset Loader be used?

Defaults to true.

The following items are configured in [AssetService] configuration blocks, they are not read or used by the actual AssetService core module.

AllowRemoteDelete

Allow maptile assets to remotely deleted by remote calls to the asset service.

There is no harm in having this as false - it just means that historical maptile assets are not deleted.

This only applies to maptiles served via the version 1 viewer mechanisms.

Default is false.

AllowRemoteDeleteAllTypes

Allow all assets to be remotely deleted.

Only set this to true if you are operating a grid where you control all calls to the asset service (where a necessary condition is that you control all simulators) and you need this for admin purposes.

If set to true, AllowRemoteDelete = true is required as well.

Default is false.

AssetServerURI

Change this to your grid-wide asset server.

Do not add a slash to the end of any of these addresses.

ConnectionString

Which database connection string is used to load assets when *not* using a [DatabaseService] configuration.

Brought in from the AssetServiceBase

DefaultAssetLoader

The name of the DLL to load to load the default assets available to viewers when connected.

Brought in from the AssetServiceBase class.

LocalServiceMondule

The name of the DLL to load to provide this service, followed by a colon ':' followed by the class to initialize in the DLL.

Default DLL is OpenSim.Services.AssetService.dll

Default class in that DLL is AssetService

StorageProvider

Which database DLL is used to load assets when *not* using a [DatabaseService] configuration.

Brought in from the AssetServiceBase class

CONFIGURATION FILES

OpenSim/bin/config-include/GridCommon.ini - for grid-connected regions
OpenSim/bin/config-include/StandAloneCommon.ini - for standlone regions
OpenSim/bin/OpenSimDefaults.ini - the default OpenSim settings
OpenSim/bin/Robust.ini - for a closed grid without hypergrid enabled
OpenSim/bin/Robust.HG.ini - for open grid with hypergrid enabled

GridCommon.ini Example

[AssetService]
    DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll"
    AssetLoaderArgs = "assets/AssetSets.xml"
    ;; Change this to your grid-wide asset server.
    ;;  Do not add a slash to the end of any of these addresses.
    AssetServerURI = "http://mygridserver.com:8003"

StandaloneCommon.ini Example

[AssetService]
    DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll"
    AssetLoaderArgs = "assets/AssetSets.xml"

OpenSimDefaults.ini

;;
;; These are defaults that are overwritten below in [Architecture].
;; These defaults allow OpenSim to work out of the box with
;; zero configuration
;;
[AssetService]
    DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll"
    AssetLoaderArgs = "assets/AssetSets.xml"

    ; Disable this to prevent the default asset set from being inserted into the
    ; asset store each time the region starts
    AssetLoaderEnabled = true

Robust.ini Example

; * As an example, the below configuration precisely mimicks the legacy
; * asset server. It is read by the asset IN connector (defined above)
; * and it then loads the OUT connector (a local database module). That,
; * in turn, reads the asset loader and database connection information
; *
[AssetService]
    LocalServiceModule = "OpenSim.Services.AssetService.dll:AssetService"
    DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll"
    AssetLoaderArgs = "./assets/AssetSets.xml"
    ; Allow maptile assets to remotely deleted by remote calls to the asset service.
    ; There is no harm in having this as false - it just means that historical maptile assets are not deleted.
    ; This only applies to maptiles served via the version 1 viewer mechanisms
    ; Default is false
    AllowRemoteDelete = false
    ; Allow all assets to be remotely deleted.
    ; Only set this to true if you are operating a grid where you control all calls to the asset service
    ; (where a necessary condition is that you control all simulators) and you need this for admin purposes.
    ; If set to true, AllowRemoteDelete = true is required as well.
    ; Default is false.
    AllowRemoteDeleteAllTypes = false

Robust.HG.ini Example

; * As an example, the below configuration precisely mimicks the legacy
; * asset server. It is read by the asset IN connector (defined above)
; * and it then loads the OUT connector (a local database module). That,
; * in turn, reads the asset loader and database connection information
; *
[AssetService]
    LocalServiceModule = "OpenSim.Services.AssetService.dll:AssetService"
    DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll"
    AssetLoaderArgs = "./assets/AssetSets.xml"

FUNCTIONS

  • AssetService ( IConfigSource config )
  • AssetService ( IConfigSource config, string configName )
  • Get ( string ID ), returns AssetBase
  • GetCached ( string ID ), returns AssetBase
  • GetMetadata ( string ID ), returns AssetMetadata
  • GetData ( string ID ), returns byte array
  • Get ( string ID, Object sender, AssetRetrieved handler ), returns boolean
  • Store ( AssetBase asset ), returns string
  • UpdateContent ( string id, byte[] data ), returns boolean, always false FIXME NOT IMPLEMENTED
  • Delete ( string id ), returns boolean

SEE ALSO