EEA Downloads

EEA Downloads

http://ci.eionet.europa.eu/job/eea.downloads-www/badge/icon http://ci.eionet.europa.eu/job/eea.downloads-plone4/badge/icon

EEA Downloads (Media Storage) mounts a file-system directory within ZODB

Main features

  1. Mounts a file-system directory within ZODB

Install

  • Within your buildout define environment-vars per instance:

    [instance]
    environment-vars +=
      EEADOWNLOADS_NAME downloads
      EEADOWNLOADS_PATH ${buildout:directory}/var/downloads
    
  • Make sure that registered file-system directory exists and the zope effective-user has read access there:

    $ mkdir -p var/downloads
    
  • Add eea.downloads to your eggs section in your buildout and re-run buildout:

    [instance]
    eggs +=
      eea.downloads
    zcml +=
      eea.downloads
    
  • You can download a sample buildout from https://github.com/eea/eea.downloads/tree/master/buildouts/plone4

  • Install eea.downloads within Site Setup > Add-ons

Getting started

  1. Login to ZMI
  2. Navigate to Plone > downloads

Storage adapter

This package defines a storage interface IStorage that you can use to get generated files system paths and Plone related URLs. Default strategy of storing files is:

EEADOWNLOADS_PATH / UID / MODIFIED / ID.EXTENSION

Here is an example:

>>> from eea.downloads.interfaces import IStorage
>>> store = IStorage(context).of('pdf')
>>> store.filepath()
'/opt/downloads/uid-21323e2321312/3213213/context-id.pdf'

>>> store.absolute_url()
'http://localhost:8080/Plone/downloads/uid-21323e2321312/3213213/context-id.pdf'

You can always provide a custom IStorage adapter for your Zope objects if you need other file-system storage layout.

Source code

Funding

EEA - European Environment Agency (EU)