Note that there are some explanatory texts on larger screens.

plurals
  1. POSuspiciousOperation using sorl-thumbnail
    primarykey
    data
    text
    <p>I have a Django web application that accesses and manipulates several server filesystems (e.g. /fs01, /fs02, etc.) on behalf of the user. I'd like to present thumbnails of images on those filesystems to the user, and thought sorl-thumbnail would be the way to do it. </p> <p>It seems though that the images must be under MEDIA_ROOT for sorl-thumbnail to create thumbnails. My <code>MEDIA_ROOT</code> is <code>/Users/me/Dev/MyProject/myproj/media</code>, so this works:</p> <pre><code>path = "/Users/me/Dev/MyProject/myproj/media/pipe-img/magritte-pipe-large.jpg" try: im = get_thumbnail(path, '100x100', crop='center', quality=99) except Exception, e: exc_type, exc_obj, exc_tb = sys.exc_info() print "Failed getting thumbnail: (%s) %s" % (exc_type, e) print "im.url = %s" % im.url </code></pre> <p>It creates the thumbnail and prints the im.url, as I'd expect. But when I change <code>path</code> to:</p> <pre><code>path = "/fs02/dir/ep340102/foo/2048x1024/magritte-pipe-large.jpg" </code></pre> <p>It fails with:</p> <pre><code>Failed getting thumbnail: (&lt;class 'django.core.exceptions.SuspiciousOperation'&gt;) Attempted access to '/fs02/dir/ep340102/foo/2048x1024/magritte-pipe-large.jpg' denied. </code></pre> <p>Is there a way to solve this? Can I use sorl-thumbnail to create thumbnails as I'd like to under these other filesystems (e.g. /fs01, /fs02, /fs03, etc.)? Is there a better approach?</p> <p><strong>Update.</strong> Here's the full stack trace:</p> <pre><code>Environment: Request Method: GET Request URL: http://localhost:8000/pipe/file_selection/ Django Version: 1.4.1 Python Version: 2.7.2 Installed Applications: ('django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.admin', 'django.contrib.admindocs', 'django.contrib.humanize', 'django.contrib.messages', 'pipeproj.pipe', 'south', 'guardian', 'sorl.thumbnail') Installed Middleware: ('django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware') Traceback: File "/Library/Python/2.7/site-packages/django/core/handlers/base.py" in get_response 111. response = callback(request, *callback_args, **callback_kwargs) File "/Library/Python/2.7/site-packages/django/contrib/auth/decorators.py" in _wrapped_view 20. return view_func(request, *args, **kwargs) File "/Users/dylan/Dev/Pipe/pipeproj/../pipeproj/pipe/views/data.py" in file_selection 184. im = get_thumbnail(path, '100x100', crop='center', quality=99) File "/Library/Python/2.7/site-packages/sorl_thumbnail-11.12-py2.7.egg/sorl/thumbnail/shortcuts.py" in get_thumbnail 8. return default.backend.get_thumbnail(file_, geometry_string, **options) File "/Library/Python/2.7/site-packages/sorl_thumbnail-11.12-py2.7.egg/sorl/thumbnail/base.py" in get_thumbnail 56. source_image = default.engine.get_image(source) File "/Library/Python/2.7/site-packages/sorl_thumbnail-11.12-py2.7.egg/sorl/thumbnail/engines/pil_engine.py" in get_image 12. buf = StringIO(source.read()) File "/Library/Python/2.7/site-packages/sorl_thumbnail-11.12-py2.7.egg/sorl/thumbnail/images.py" in read 121. return self.storage.open(self.name).read() File "/Library/Python/2.7/site-packages/django/core/files/storage.py" in open 33. return self._open(name, mode) File "/Library/Python/2.7/site-packages/django/core/files/storage.py" in _open 156. return File(open(self.path(name), mode)) File "/Library/Python/2.7/site-packages/django/core/files/storage.py" in path 246. raise SuspiciousOperation("Attempted access to '%s' denied." % name) Exception Type: SuspiciousOperation at /pipe/file_selection/ Exception Value: Attempted access to '/fs02/dir/ep340102/foo/2048x1024/bettina.jpg' denied. </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload