Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Extension] thumbnails #10

Closed
3 tasks
butonic opened this issue Aug 27, 2019 · 13 comments
Closed
3 tasks

[Extension] thumbnails #10

butonic opened this issue Aug 27, 2019 · 13 comments
Assignees

Comments

@butonic
Copy link
Member

butonic commented Aug 27, 2019

while thumbnails should be a separate service it needs to respect the access permissions, otherwise it might leak information.

oCIS Extension based on #54

We can

  • use a content hash of the original file and the thumbnail size for the name of the thumbnail, render it on the fly, cache it on the server side and in the browser. If you don't already have the content hash you can only brute force thumbnails. Without authentication an attacker might be able to iterate over known hashes, which might leak compromising information.
  • optionally, to increase security, check if the user is logged in
  • optionally, to increase security even further, check file permissions and deny thumbnail access if the user has no access.

They can be implemented incrementally.

@butonic butonic transferred this issue from owncloud-archive/nexus Oct 1, 2019
@butonic butonic added this to the Extensions milestone Oct 15, 2019
@butonic butonic assigned butonic and TheOneRing and unassigned butonic Oct 22, 2019
@michaelstingl
Copy link
Contributor

@felixboehm
Copy link
Contributor

felixboehm commented Nov 25, 2019

PR is here cs3org/reva#298

@felixboehm felixboehm changed the title [reva] thumbnails [Extension] thumbnails Nov 25, 2019
@PVince81
Copy link
Contributor

On the front end side, the way I see it:

  • files app must support fetching file thumbnails for displaying in the current file list: Display previews web#276
  • optionally: we can provide a way to view bigger previews in the top of sidebar like we had in OC 10. Could be native or could be provided by an extension
  • later on: gallery view frontend extension that either provides another view of the file list (needs extension point to register multiple views for the file list => Allow providing alternative file list views web#2585)

For finding out about preview URLs, multiple options:

  1. reuse the same URL / path we had in OC 10 (by convention, keeps compatibility)
  2. expose thumbnail URL in PROPFILE/filelist responses in all supported protocols (maybe MSGraph has this already?)

@DeepDiver1975
Copy link
Member

MS Graph API already has a Thumbnail spec

@PVince81
Copy link
Contributor

PVince81 commented Nov 28, 2019

Had a chat with @TheOneRing to understand how the current implementation of the thumbnail server works. As far as I understood:

  • the currently implemented thumbnail server:
    • receives a Webdav URL including authentication token and parameters for the thumbnail.
    • sends a request to the Webdav URL with HEAD (to check etag) and GET to receive the file in question
    • the response body of the first requests will contain the generated thumbnail
    • caches the requested thumbnails in memory (for now), so the HEAD / etag check can save having to do the Webdav request to get the thumbnail

@butonic
Copy link
Member Author

butonic commented Nov 28, 2019

As @DeepDiver1975 mentioned we should make the thumbnail service serve the endpoints as exposed in the ms graph api https://docs.microsoft.com/en-us/graph/api/driveitem-list-thumbnails?view=graph-rest-1.0&tabs=http

@PVince81
Copy link
Contributor

As far as I can see it would require the router to let extensions register to dynamic routes, not only route prefixes. Here for example: /drives/{drive-id}/items/{item-id}/thumbnails

@PVince81
Copy link
Contributor

PVince81 commented Nov 29, 2019

Further ideas:

  • the service could have the ability to pregenerate thumbnails when passing in a folder URL. it should then recursively traverse it and create thumbnails of all known file types in there with a standard/configured size, so they are pre-cached. This would be useful for gallery-like usage.
  • do the pregeneration in a background job, or "just in time" after uploading

@michaelstingl
Copy link
Contributor

Added support for modern media formats like HEIC & HEVC in #10 (comment)

refs pushed a commit that referenced this issue Sep 9, 2020
refs pushed a commit that referenced this issue Sep 18, 2020
Add root path to static middleware
refs pushed a commit that referenced this issue Sep 18, 2020
refs pushed a commit that referenced this issue Sep 18, 2020
Docs Edit links, Changelog template, Makefile
refs pushed a commit that referenced this issue Sep 18, 2020
Fix typo, add config to graph service
refs pushed a commit that referenced this issue Sep 18, 2020
- Use devldap ldap-defaults
refs pushed a commit that referenced this issue Sep 18, 2020
Add license scan report and status
@wkloucek
Copy link
Contributor

thumbnails extension is there. Some more to do here?

@michaelstingl
Copy link
Contributor

thumbnails extension is there. Some more to do here?

Link to qa/test results? Are my items from #10 (comment) already covered? Otherwise we'd need new issues…

@refs
Copy link
Member

refs commented Jan 11, 2021

thumbnails extension is there. Some more to do here?

Link to qa/test results? Are my items from #10 (comment) already covered? Otherwise we'd need new issues…

I'd close this and take care of creating new issues addressing @michaelstingl comments 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants