coralnet
coralnet copied to clipboard
Permanent image URLs for public sources
Currently all the data-image (not static image) URLs on the site are protected by time-limited AWS keys. This means that any valid image URL you obtain will only work up to 1 hour after that URL was served.
At the least, perhaps public sources should be able to serve permanent URLs for their images. Not a lot of sites that I can think of serve temporary image-URLs. However, I'm trying to think what the benefits of making this change would actually be.
- If we implement an interface to bulk-download images, would the way URLs are served affect how well it works (I doubt it)?
- Would it affect the way that third-party CoralNet downloaders work (this one seems to work fine as is)?
- What are the situations where CoralNet people want to link directly to CoralNet-hosted images, as opposed to say, linking to the image-detail page?
- Do we even want to allow external sites to directly embed CoralNet images? I'm sure there are pros/cons articles to read on this topic.
- Is SEO a factor?
For private sources, there's an additional problem: if not for the AWS keys, it would be possible to construct full-image URLs (which are supposed to be private for private sources) from image patch URLs (which are publicly viewable for all sources in label pages' Example Patches sections). So for private sources, first we'd have to guarantee that full-image URLs can only ever be 'leaked' by the source members themselves; then permanent image URLs would be viable.
If we implement an interface to bulk-download images, would the way URLs are served affect how well it works (I doubt it)? Would it affect the way that third-party CoralNet downloaders work
I had an idea. Perhaps CoralNet's "official" image-download solution could be to just give a list of public, non-time-limited image URLs (+ corresponding image names) in an API response. Then the user decides how to feed these URLs+names into a downloader program of their choice. Would be logistically a lot simpler on our end than issue #64 (batched zip downloads) or issue #158 (interfacing with the Dropbox API). My guess is that generic downloader apps like this are out there, and it's just a matter of finding them. Hopefully there is one with a nice UI that doesn't require that much technical knowledge to use.
What are the situations where CoralNet people want to link directly to CoralNet-hosted images, as opposed to say, linking to the image-detail page?
Here's one from the other day (zooniverse): https://groups.google.com/g/coralnet-users/c/8vjvdGd-az4
Do we even want to allow external sites to directly embed CoralNet images? I'm sure there are pros/cons articles to read on this topic.
One point is that embedding uses CoralNet's bandwidth to load the image whenever the external site is viewed, without giving credit to CoralNet or the source it's uploaded in (unlike a coralnet.ucsd.edu
text link which would make such credit more obvious). So it's easier to 'steal' images. Re-saving and hosting the image at least takes more effort from the third-party, and uses their own bandwidth.
That being said, perhaps the pros of embedding would outweigh the cons for certain source owners, and maybe the embed bandwidth won't be that big of a deal for us if it's only for certain sources. So one potential idea is to let embedding be configured per-source, with it being off by default. I'm not sure what's technically needed to implement this, but per-user embed enabling has been possible for big sites such as Instagram.