OMERO.openlink
An OMERO.web plugin that creates openly accessible links (URLS for raw files) to your data in OMERO and a batch file to download the data with 'curl'.
Main application:
- Bundle data of different groups/projects/datasets
- Fast web download
- Data sharing via link
Requirements
- OMERO.web 5.6.0 or newer
- nginx server configurations
Installation
This section assumes that an OMERO.web is already installed and you will use the nginx server to provide the URL's.
Prerequisite
Variable OPENLINK_DIR: You have to define a directory on your OMERO.server (here /path/to/open_link_dir), where your nginx server has access. The system user omero-server requires read and write access to this directory for link generation. If you want to use the plugin, omero-web also needs read and write access. Please specify the full path to this directory under OPENLINK_DIR.
Install the app using pip <https://pip.pypa.io/en/stable/>_
NB: You need to ensure that you are running pip from the python environment where omero-web is installed. Depending on your install, you may need to call pip with, for example: /path/to_web_venv/venv/bin/pip install ...
::
$pip install -U omero-openlink
Add OpenLink app to your installed web apps:
::
$omero config append omero.web.apps '"omero_openlink"'
Display the OpenLink pane in the right pane
::
$omero config append omero.web.ui.right_plugins '["OpenLink", "omero_openlink/webclient_plugins/right_plugin.openlink.js.html", "openlink_tab"]'
Additional configuration settings:
::
# path of prepared OPENLINK_DIR, here as eaxmple */storage/openlink*
$omero config set omero.web.openlink.dir '/storage/openlink'
# set the url alias of your OMERO.web server without leading http://. Here as example we use the address of the openmicroscopy demo server
$omero config set omero.web.openlink.servername 'demo.openmicroscopy.org'
# http or https
$omero config set omero.web.openlink.type_http 'https'
# nginx location for openlink data, here as example /openlink; would result in the url https://demo.openmicroscopy.org/openlink
$omero config set omero.web.openlink.nginx_location '/openlink'
Reload your system and restart the OMERO.web server:
Nginx configuration
This section assumes that an you use an nginx server.
Prerequisites:
For the configuration you have to reuse the specified values for SERVER_NAME and OPENLINK_DIR.
Specify the URL under which the data should be accessible:
::
SERVERNAME/SUBGROUP # this could be data.myorg.de/openlink
You can configure your nginx in two way's:
Option 1: Add a new location to your nginx configuration file (etc/nginx/conf.d/omeroweb.conf) like:
::
location /SUBGROUP {
proxy_read_timeout 36000; # 10 hours
limit_rate 10000M; # 10 GByte
gzip on;
gzip_min_length 10240;
disable_symlinks off; # enable symlinks
autoindex on;
autoindex_format html; # html, xml, json, or jsonp
autoindex_exact_size off; # on off
autoindex_localtime on; # on off (UTC)
alias OPENLINK_DIR; # the links will be created here
}
Option 2: Or create a new website for nginx by create a new file (e.g. openlink.conf) in /etc/nginx/conf.d/ with:
::
server {
listen 80;
server_name SERVER_NAME; # url alias to this nginx site
location /SUBGROUP {
proxy_read_timeout 36000; # 10 hours
limit_rate 10000M; # 10 GByte
gzip on;
gzip_min_length 10240;
disable_symlinks off; # enable symlinks
autoindex on;
autoindex_format html; # html, xml, json, or jsonp
autoindex_exact_size off; # on off
autoindex_localtime on; # on off (UTC)
alias OPENLINK_DIR; # the links will be created here
}
}
Note: To use a special style (like the example in scripts/nginx/autoIndexStyle.xslt) for your openlink data representation, please copy the style file to /etc/nginx and use the following configuration:
::
autoindex_format xml;
xslt_stylesheet /etc/nginx/autoindexStyle.xslt path="$uri" schema="$scheme" host="$host";
If a user navigates to a URL that corresponds to a directory on the server, NGINX looks for an index file to serve. By default, this is usually index.html. If this file is present, NGINX will serve its contents instead of displaying a directory listing. It is recommendet to put such a index.html in the OPENLINK_DIR to avoid the listing of all created openlink data.
Example for index.html
::
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Omero Downloads</title>
</head>
<body>
<a href="https://data.myorg.de/openlink">Please go first to the Omero-System to create DownloadLinks!</a>
</body>
</html>
Enable openlink creation
This section assumes that an OMERO.server is already installed.
Openlink can be created using a script that runs on the OMERO.server. This script needs to be uploaded to the OMERO.server and its dependencies installed in the OMERO.server virtual environment.
The script can be uploaded using two alternative workflows, both of which require you to have the correct admin privileges. To find where OMERO.openlink has been installed using pip, run:
::
$pip show omero-openlink
The command will display the absolute path to the directory where the application is installed e.g. ~/<virtualenv_name>/lib/python3.6/site-packages. Go to that directory.
Before uploading please edit the configuration section of omero_openlink/scripts/omero/util_scripts/Create_OpenLink.py.
Note OPENLINK_DIR, SERVER_NAME,TYPE_HTTP, NGINX_LOCATION should have the same values like specified in the config of OMERO.web. Because the script is running on the OMERO.server, there is no way to transfer the config parameters automatically.
::
# Directory for links that the nginx server also has access to as specifed in OMERO web config
OPENLINK_DIR = "/path/to/open_link_dir"
# name of nginx website as specifed in OMERO web config
SERVER_NAME = "omero-data.myfacility.com"
# type of hypertext transfer protocol (http or https) as specifed in OMERO web config
TYPE_HTTP = "https"
# email originator
ADMIN_EMAIL = "myemail@yourfacilitydomain"
# filename with links to single files
LINKS_FILE = "links_to_data.txt"
# length of hash string used in the openlink url
LENGTH_HASH = 12
# email server IP adress
SMTP_IP = "127.0.0.1"
# nginx location for openlink data as specifed in OMERO web config
NGINX_LOCATION = "" # '/openlink'
Option 1: Connect to the OMERO server and upload the script via the CLI. It is important to be in the correct directory when uploading so that the script is uploaded with the full path: omero/utils_scripts/Create_OpenLink.py:
::
$cd omero_openlink/scripts
$omero script upload omero/util_scripts/Create_OpenLink.py --official
Option 2: Alternatively, before starting the OMERO.server, copy the script from the figure install /omero_openlink/scripts/omero/util_scripts/Create_OpenLink.py to the OMERO.server path/to/OMERO.server/lib/scripts/omero/util_scripts. Then restart the OMERO.server.
Option 3: Upload the script through the OMERO web interface: For this, log into your OMERO web interface as admin, select the scripts icon and click on the "Upload Script" button. Select the Create_OpenLink.py script from the directory where you copied it to locally and upload it into the directory omero/util_scripts.
Validation
Validation of configuration in Create_OpenLink.py
In order to check whether the values for x have been entered correctly, please test the link that was entered in the log file under URL and also check the entered url's in the batch_download.curl that is available there.
Validation of configuration omero-openlink
There is a debug output available for the plugin. Go to subdirectory omero_openlink of the installation directory of omero-openlink
::
$ cd omero-openlink/omero_openlink
open the urls.py and delete the leading # in the line
::
#url(r'^debugoutput/$',views.debugoutput,name='debugoutput'),
After restarting the web server, find the debug output for your Openlink plugin by replacing webclient by oemro_openlink/debugoutput in the URL of the omero.web (for example: https://server.openmicroscopy.org/webclient -> https://server.openmicroscopy.org/omero_openlink/debugoutput). This output shows you:
- what is defined under OPENLINK_DIR, SERVER_NAME
- check if OPENLINK_DIR is accessible
- check permission of OPENLINK_DIR for omero-web user
- overview of OpenLink Areas of currently logged-in user
License
OMERO.openlink is released under the AGPL.
Metadata
Release files for omero-openlink 2.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| omero_openlink-2.1.3.tar.gz | 41.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| omero_openlink-2.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 79.7 kB
Release files / omero_openlink-2.1.3.tar.gz
| Download URL | omero_openlink-2.1.3.tar.gz |
|---|---|
| Size | 41.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
45d270ceace7eb2c371d3d1b662e86ee91dc5d9ef0aff26d608d31bd3a183d9a
|
|
BLAKE2b-256 checksum How to use checksums |
e476e57294f32dd6fd7aee90ec6dbf698e4abda191a72db2f8123e7e8e5595b2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.8
|
Release files / omero_openlink-2.1.3-py3-none-any.whl
| Download URL | omero_openlink-2.1.3-py3-none-any.whl |
|---|---|
| Size | 38.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0909c2e6f4beec7e573a9f4ecf3f3ad58a6a99b6cf47f206151d61f40e53f2ef
|
|
BLAKE2b-256 checksum How to use checksums |
06c63dfc31df2d34aa371cdd093c814eb39b7f8d7ca410129d6b1e4a27887baa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.8
|