Removing (or ignoring) tiles pre-generated with IIIF Server

While trying to troubleshoot some issues related to tiling, I used IiifServer to pre-generate tiles, which are stored in files/tile.

However, I noticed that the media for which there are pre-generated tiles, then default to OpenSeadragon also in other Omeka S sites in the same installation which use other themes, which is undesirable.

I assumed that just deleting/renaming the tile folders, would restore the previous behaviour, but this is not the case, and I get an error for missing tiles (“No tile or no properties for media #…”).

I suppose this means that information about tiling is then stored together with the media, but apparently not exposed in the frontend.

Is there a way to tell Omeka S to ignore information on tiling? Or even better, reverse the process that happened when I ran the “Bulk tiler”, i.e. removing any information about tiles?

The only reference I found was in the API, where I see that for the media that I have pre-tiled, there is a line that says:

o:renderer: "tile"

Which I suppose I should change back to:

o:renderer: "file"

Should I be doing this via command line and API, or is there some other easier way that I am missing?

Should I take care of something else, besides the renderer?

Quick update.

I have been unable to update the renderer via the REST api. I can correctly update metadata but when I try to update (via PATCH) the renderer, nothing actually changes, even if I get a 200 status, which is disappointing.

The closest I got to fixing this via the REST api was to download the media, and upload it with the same metadata as a new media, and delete the previous.

Ultimately, I felt that a “quick and dirty” solution worked much better. This boils down to temporarily editing the file /src/Job/BulkTiler.php/ of the module IiifServer or ImageServer, and change at the very least the following two lines (remove more to prevent the tiling process to run unneccessarily):

if ($renderer !== 'tile') {
to
`if ($renderer == ‘tile’) {

$mediaEntity->setRenderer('tile');
to
$mediaEntity->setRenderer('file');

This regenerates tiles, but changes back the renderer to file (the default) if it was set to tile.

Unless I am missing something, this restores the previous behaviour, and does not break anything (if you feel I’m missing something, please do let me know).

All things considered, I feel that somewhat stronger and more visible words of warning should come with the the bulk tiler (there is reference to setting the renderer to “tile” if you expand the text under query, but the related link does not clarify much about the consequences). After tiling, for example, all images that were used in site pages disappeared. OpenSeadragon became the default in all sites for pre-tiled images, no matter the theme, even those that did not use UniversalViewer.

Anyway, thanks again to Daniel for all the great work for enabling IIIF integration in Omeka S!

Yeah, you can’t update the renderer/ingester through the API: that’s all designed to be handled internally at the time of the creation of the media.

@giocomai Could I ask about your use of the REST API to update metadata: are you using PATCH for the successful metadata updates you mentioned in your update? If so, could you share an example? I’ve posted about my problems getting PATCH to work, and I’d be very grateful for your help. (It probably makes sense to post a comment on that post, so others will find it)

I replied there, hope it helps!

Mostly I just try to send to the API json that looks the same as the one I get from the API and hope for the best :slight_smile: