Skip to main content

Use AWS S3 with private documents in Wagtail.

Project description

This package helps to maintain Wagtail documents hosted on S3.

This is currently only proof of concept. Do not use on the production.

Features

  • Serve public documents straight from S3.

  • Service private documents straight from S3 using signed URLs.

  • Purge documents from front-end cache when needed.

Requirements

  • You use django-storages with S3Boto3Storage as your storage backend and you have configured it.

  • Your S3 user can set files’ ACLs in the bucket you use.

  • Front-end cache purging uses Wagtail’s frontendcache contrib module, so you need to configure that beforehand.

  • You don’t cache your Wagtail’s documents view, since that would make it impossible to have private files.

  • AWS_QUERYSTRING_AUTH = False is set if you want to serve public files without querystring auth.

Rationale

The reason this package was developed is that currently Wagtail has to read all of your file in the Python view and return it from Python. It turns out to be fairly inefficient and may result in long response times. Also there’s no solution out there to efficiently serve private files from Wagtail and S3.

Management command

There’s a management command that sets all the documents’ ACLs according to the their collection permissions. This may be useful if you started using wagtail-storages after you uploaded documents.

Settings

WAGTAIL_STORAGES_DOCUMENTS_FRONTENDCACHE

Using the same format as Wagtail’s WAGTAILFRONTENDCACHE setting, but to be only used by the wagtail-storages to purge the documents. If not set, the purge won’t happen. Read more on how to format it in the Wagtail docs, e.g.

WAGTAIL_STORAGES_DOCUMENTS_FRONTENDCACHE = {
    'cloudfront': {
        'BACKEND': 'wagtail.contrib.frontend_cache.backends.CloudfrontBackend',
        'DISTRIBUTION_ID': 'your-distribution-id',
     },
}

WAGTAIL_STORAGES_DOCUMENT_HOOK_ORDER

Set a custom order for the document hook order. It’s set to 100 by default. It’s important that it runs after any of your hooks since it returns a response, e.g.

WAGTAIL_STORAGES_DOCUMENT_HOOK_ORDER = 900

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

wagtail-storages-0.0.2.tar.gz (6.6 kB view details)

Uploaded Source

Built Distribution

wagtail_storages-0.0.2-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

File details

Details for the file wagtail-storages-0.0.2.tar.gz.

File metadata

  • Download URL: wagtail-storages-0.0.2.tar.gz
  • Upload date:
  • Size: 6.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.2 pkginfo/1.4.2 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.37.0 CPython/3.7.5

File hashes

Hashes for wagtail-storages-0.0.2.tar.gz
Algorithm Hash digest
SHA256 30049de77a27b3ca715d12decffe447617d1e12210889eb00fe3b897b779bcff
MD5 2aa361a817e676480865c25bba1e9dfc
BLAKE2b-256 011dd49f25891716179f8a3ecc04e3be400fd75a298eb881669f15bf0b06a785

See more details on using hashes here.

Provenance

File details

Details for the file wagtail_storages-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: wagtail_storages-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 8.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.2 pkginfo/1.4.2 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.37.0 CPython/3.7.5

File hashes

Hashes for wagtail_storages-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b63cfa0dbfc57533991803100fa2f3ed86be06e8747ecba94f65026501c918d5
MD5 0524cfaea6ce9b25ad0f0204c2b37d78
BLAKE2b-256 d27780190569aa20e73b6d087eaa0200220953fa9b7b5548e9eb9b4cac289862

See more details on using hashes here.

Provenance

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