IIPImage for 8.1 on rucore-dev.libraries

Project:RUcore Software Configuration
Version:8.1
Component:Upgrade software
Category:task
Priority:normal
Assigned:dhoover
Status:closed
Description

Following the specification high resolution image specification (<a href="https://rucore.libraries.rutgers.edu/collab/ref/spc_sawg_r8_1_high_resolution_images.pdf" title="https://rucore.libraries.rutgers.edu/collab/ref/spc_sawg_r8_1_high_resolution_images.pdf">https://rucore.libraries.rutgers.edu/collab/ref/spc_sawg_r8_1_high_resol...</a>) please install the development code from the IIPImage github site.

Github: <a href="https://github.com/ruven/iipsrv" title="https://github.com/ruven/iipsrv">https://github.com/ruven/iipsrv</a>
IIPImage and IIIF protocol conformance: <a href="http://iipimage.sourceforge.net/2014/12/iiif/" title="http://iipimage.sourceforge.net/2014/12/iiif/">http://iipimage.sourceforge.net/2014/12/iiif/</a>

Why am I requesting the development instance? Ideally we would like to conform to the IIIF 2.0 image(<a href="http://iiif.io/api/image/2.0/" title="http://iiif.io/api/image/2.0/">http://iiif.io/api/image/2.0/</a>) and IIIF 2.0 presentation(<a href="http://iiif.io/api/presentation/2.0/" title="http://iiif.io/api/presentation/2.0/">http://iiif.io/api/presentation/2.0/</a>) API's for this release. IIPImage makes mention of this conformance with IIPImage version 1.0, however that version has not been released yet Until then the IIPImage dev says to use the development release for IIF conformance. I have reached out to find out when the 1.0 version of IIPImage will be available.

As far as how to configure the IIPImage server initially if it can be installed without a localhost restriction that would help with development. Once development has commenced to a point where a localhost restriction will make sense I will request that.

The image directory for the IIPImage server initially can point to the same location that the current installed build is using. Eventually, that should be changed to the repository datastream directory to access the pyramidal TIFs directly. I will make a request for that as well once the development has reached a decent point.

Comments

#1

Component:Add new software» Upgrade software
Category:feature request» task

#2

Assigned to:dhoover» chadmills

Downloaded and installed the development version of iipsrv version 1.0

I swapped it in place of the other iipsrv.fcgi binary, all other configuration
was left as is.

Let me know if you encounter any issues.

#3

Thanks, I got it working with the IIIF image API. One problem though.

So I pass along the file path to the PTIF file in the Fedora datastream directory. I do so by creating a symbolic link to the base of the datastreams directory and then add the rest of the path information.

On dev the image directory is: /mellon/jpeg2000/images/datastreams

Under there I created a symbolic link to /mellon/datastreams; which is /mellon/jpeg2000/images/datastreams

Get the file path works; however there are (+) signs in the datastream file name. Example is:

/mellon/datastreams/2016/0106/15/46/rutgers-lib_469+PTIF-1+PTIF-1.0

IIPImage removes them when filtering the request, this is from the /tmp/iipsrv.log

FIF :: URL decoding/filtering: 2016/0106/15/46/rutgers-lib_469+PTIF-1+PTIF-1.0 => 2016/0106/15/46/rutgers-lib_469 PTIF-1 PTIF-1.0

So then the image server cannot find the file because the plus signs have been filtered out. I cannot find a way to prevent IIPImage from doing this. This filtering is part of its internal sercurity protocols. The only way around it I have found so far is to create a symbolic link to the file from the image server directory. Example is:

On rucore-dev I created the following directory: /mellon/jpeg2000/images/symlinks

I then created the following symbolic link.

lrwxrwxrwx 1 cern cern 67 Feb 29 13:42 rutgers-lib_469-PTIF-1 -> /mellon/datastreams/2016/0106/15/46/rutgers-lib_469+PTIF-1+PTIF-1.0

I really do not like creating symbolic links at this granular level. However, for now I am creating and checking the symlinks created based on the current version of the datastream version and rewriting the symlink to the most recent version of the datastream when it has been updated. This is triggered the next time the datastream is requested through the image server.

For now; this works for continual development, but a larger discussion about this probably needs to take place.

#4

IIPIMAGE has released a production 1.0 version. Please upgrade the development version.

https://github.com/ruven/iipsrv/issues/56

#5

Assigned to:chadmills» dhoover

#6

Installed version 1.0 on 3/29/16

#7

Did we decide if this software will be installed on every Repository server?

#8

I'm depending on it for 8.1; so yes please.

#9

Status:active» fixed

#10

Will complete install of this today (4/27/16) on rep-test and rep-staging

#11

Status:fixed» active

Thanks, you beat me to it. Moving to active for now.

#12

Installed on rep-test 4/27/16

Used the same configuration information for paths that was on rep-dev
what I am unsure of is what do the permissions need to be on:

/mellon/jpgeg2000
/mellon/jpeg2000/images
/mellon/jpeg2000/scaled

On rep-dev they were

drwxrwxr-x 4 root developers 4096 Sep 30 2015 /mellon/jpeg2000/
drwxrwxrwx 5 root developers 4096 Apr 6 13:32 /mellon/jpeg2000/images
drwxrwxr-x 4 root developers 4096 Sep 30 2015 /mellon/jpeg2000/scaled

but as a sysadmin I never want to make directories writeable by all.

Is the generation images and use of these directories basically going to be
carried out by the Apache user?

#13

For the images directory yes the Apache user should be on the only one writing to these directories. There will be sub-directory created under /jpeg2000/images/ for symlinks to the Fedora datastream corresponding to the most recent PTIF image. This symlink will be used by IIPImage. The creation and management of the symlinks is carried out by the IIIF API and that API will update the PTIF symlinks when new versions of datastreams are created. The name and location of the symlink directory is configurable.

The jpeg2000/scaled directory is something of a mystery to me. I haven;t seen it used by IIPImage and I know the IIIF API doesn't use it, so I can't answer that other than to say it might not be necessary unless IIPIMage has some setting.

#14

Please note on the test environment I created the "symlinks" directory mentioned in comment #13. The permissions can be tighten up as noted for this and the higher level "/mellon/jpeg2000/images" directory. IF you prefer to place the symlinks up a level or somewhere else let me know. I'll have to change a configuration. The creation of the symlinks directory and the configuration will be noted as part of the installation README for the Get API. Here is a link to test with.

https://rucore-test.libraries.rutgers.edu/rutgers-lib/20682/PTIF/1/play/

#15

I propose the base image directory for the IIPImage server be named "iipimage". This should reflect at a system level the intent of the directory. That directory should ideally be in the same location on each environment. This will create less problem when moving software from server to server. For now the directory will only serve as a location for symlinks to datastream files stored in the repo.

So final suggestion is:

/mellon/iipimage/

Let me know if this is appropriate and when it is on dev and test and I will reconfigure the front end.

Thanks,
Chad

#16

Assigned to:dhoover» chadmills

On rep-dev.libraries.rutgers.edu I made the following changes:

- Created /mellon/iipimage made it owned by the web server user
rep-devel2:/usr/local/apache_2.2.29/conf # ls -ald /mellon/iipimage/
drwxr-xr-x 2 cern cern 4096 May 9 11:05 /mellon/iipimage/

- Updated Apache configuration (httpd.conf) to use new path
-initial-env FILESYSTEM_PREFIX=/mellon/iipimage/
#-initial-env FILESYSTEM_PREFIX=/mellon/jpeg2000/images/

- Restarted Apache

Let me know when you have reconfigured and confirmed all is ok on rep-dev.libraries
and then I will make the same changes on rep-test.libraries

#17

Assigned to:chadmills» dhoover

Looks good on dev. I reconfigured and loaded a few images. I removed the "symlink" sub-directory, so the symlinks are created in the "iipimage" directory. If it looks like a good structure to administer then please reconfigure rep-test the same. Any issues, let me know. thanks.

#18

Made the same changes on rep-test

- Created /mellon/iipimage made it owned by the web server user
rep-devel2:/usr/local/apache_2.2.29/conf # ls -ald /mellon/iipimage/
drwxr-xr-x 2 cern cern 4096 May 9 11:05 /mellon/iipimage/

- Updated Apache configuration (httpd.conf) to use new path
-initial-env FILESYSTEM_PREFIX=/mellon/iipimage/
#-initial-env FILESYSTEM_PREFIX=/mellon/jpeg2000/images/

- Restarted Apache

#19

Reconfigured test as well. Works as expected. Thanks.

The /mellon/jpeg2000/ directories can be deleted off of both systems whenever you wish. I do not need the sample/test images in those directories anymore.

#20

This has been installed and configured on rep-staging and rep-prod.
Please mark it closed.

#21

Status:active» closed

Completed when 8.2 was released on June 13, 2016.

Back to top