Skip to main content

Access the filesystem from Plone

Project description


Reflecto is a tool to incorporate part of the file system into a Plone site. It allows you to browse through a filesystem hierarchy and access the files in it. Files are represented as simple downloadable object, not as full CMF or Plone content types.


  • Plone 3.1 or later

  • TextIndexNG3 is optional, but needed to index non-text files.

Filename policies

Filenames must be valid Zope ids. In addition, filenames starting with a dot, or with ‘@@’ are also deemed invalid. Files with names not matching these criteria will be ignored.

This means that filenames must basically be ASCII characters only, and not start with aq_, @@, . or _, not end with __ nor contain a +.

More information

For new releases please visit the Reflecto product page on

Please report bugs and feature requests in the Reflecto issue tracker.




Design and Development –

Jarn Simplon B.V. Wichert Akkerman, Martijn Pieters

Universal Encoding Detector

Mark Pilgrim, Netscape Communications Corporation


3.0.6 - June 5, 2014

  • Fixed an issue with some files that do not return any encoding. Let’s fallback to ASCII. [keul]

  • Quoting filename in Content-Disposition header to prevent ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION problem with Chrome browser. [keul]

3.0.5 - July 11, 2013

  • Fix a regression in creating new Reflectors and unindexing them when they are removed. [davisagli]

3.0.4 - July 9, 2013

  • Pass the base reflector path to sub-proxies when instantiating them so they can determine their filesystem path even when not acquisition-wrapped. Needed for compatibility with collective.indexing. [davisagli]

3.0.3 - July 5, 2013

  • Make ReflectoFile’s SearchableText method use TextIndexNG3 converters if available. This is useful when indexing using collective.solr instead of TextIndexNG3 or the default Plone catalog. [davisagli]

3.0.2 - July 3, 2013

  • Changed the technique used to avoid indexing reflected items in live mode. The new technique does not conflict with collective.indexing’s monkey patches of indexing methods. [davisagli]

  • Detect charset of files and encode as utf8 when indexing SearchableText, even when not using textindexng. [davisagli]

  • Add explicit dependency. [danjacka]

3.0.1 - June 19, 2013

  • Fix regression preventing the creation of new Reflectors. [davisagli]

3.0 - June 18, 2013

  • If is present, provide a UUID for reflected files. The UUID is based on the main reflector’s UID and the file’s path. [davisagli]

3.0b1 - January 23, 2013

  • Make sure reflected files implement all three methods (!!) to return the content type. This fixes problems displaying text files.

  • Log skipped files when iterating over directory contents.

  • Do manual splitting of filenames when indexing content. This allows searching for filenames. This previously did not work because the standard indexer strips dots, which does not work well for filenames.

2.5.1 - May 8, 2012

  • Package fix [aclark]

2.5 - May 8, 2012

  • Fixed broken imports for Plone 4.1 compatibility [swampmonkey]

  • Make compatible with Plone 4/Zope 2.12 by removing z2-style interfaces and adjusting some imports [tom_gross]

2.4 - July 17, 2009

  • Disable recursive handling of AT references in reflectors: proxies filesystem data is never referenceable, so this only slowed things down. [wichert]

  • Disable ownership fixing after adding reflector proxies. This prevents slow tree walks after copy/pasting reflectors. [wichert]

  • Silence manage_after* deprecation warning. [wichert]

2.3 - June 19, 2009

  • Do no index filesystem data when running in life mode. This guarantees no stale data will be in the catalog. [wichert]

  • Do not add trailing slash to file URLs in the folder contents view. This makes sure the base URL is correct, and relative paths in html files work correctly. [wichert]

  • Move the file-specific mime type logic to the ReflectoFile class, and make the default implementation always return application/octet-stream. This fixes problems with indexing of directories. [wichert]

2.2 - April 16, 2009

  • Use the mimetypes_registry tool to find the content-type of a file, only falling back to the system mimetype registry if the tool can not identify the file. [wichert]

  • Set the Content-Type header correctly for file downloads. [wichert]

2.1 - August 5, 2008

  • Return an empty list instead of raising an exception which triggers a site error when accessing a reflector which tries to use a path which does not exist on the filesystem. The old behaviour was non-intuitive for users and made migrating sites extremely hard. [wichert]

  • Update TextIndexNG3 support code to include the Title (ie the filename) of an object in SearchableText. [wichert]

  • Make Reflecto an ATCT content types to make it integrate better with Plone. This was triggered by Reflecto instances inheriting the excludeFromNav data from their parent which made them not appear in the site navigation for mysterious reasons. [wichert]

  • Fix Last-Modified header format. [elro]

  • Add webdav support. [elro]

  • Lowercase filenames before looking up the mime-type. This fixes incorrect mime-types for uppercase filenames. [wichert]

  • Remove the properties alias from the Reflector type. This is obsolete in Plone 3.x. [wichert]

  • Add CSRF authenticator to the folder_contents page. This means Reflecto now requires Plone 3.1, or Plone 3.0 with the CSRF hotfix. This fixes . [wichert]

2.0 (Released 2008/05/14)

  • Use the correct title for the folder_contents buttons. [wichert]

  • Add support for downloading folders as zip files. [wichert]

  • If CacheSetup is installed allow users to tweak cache rules for individual Reflector instances. [wichert]

  • Prevent CR/LF conversion when uploading files on Windows. This fixes bug 22 (see ). [wichert]

  • Port to Plone 3. [wichert]

  • Add a ‘live’ option which makes Reflecto show live filesystem data instead of catalogued data. [wichert]

  • Correct the Plone version test. This fixes bug 11 (see ). [wichert]

1.2 (Released 2007/09/05)

  • Changed the permission mask from 600 to 644 [FinnArild]

  • Issue #1: Include the Title in SearchableText. [mj]

  • Issue #2: Add a SearchableText implementation for Directories, returing the Title. [mj]

  • Updated Install method to use the CMF 2.1 GenericSetup interface if Plone 3 is being used. [wichert]

  • Updated imports which current Zope 3 deprecated [wichert]

  • Updated tests to support Archetypes 1.5 as used by Plone 3.0 [wichert]

  • Updated @@index view mockup registration in directory tests for Plone 3.0 [mj]

  • Fixed contents tab for Plone 3.0 [mj]

1.1 (Released 2007/06/28)

  • Fixed uploading files and directory creation in subdirectories [mj]

1.0 (Released 2007/06/27)

  • Initial release [mj]

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution (349.0 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page