Skip to main content

django-weed

This project provides [Weed-FS](https://code.google.com/p/weed-fs/) integration with Django by giving model field.

Dependencies

This project is built on top of [pyweed](https://github.com/utek/pyweed) project which provides Python implementation of API to Weed-FS.

Thus dependencies are:

  • configured Weed-fS

  • pyweed module

  • django (tested only with 1.6 now, but should work with early releases as well)

Installation

pip install django-weed

or

pip install https://github.com/ProstoKSI/django-weed/archive/master.zip

How to use

django-weed provides WeedFSFileField model field, so if you have regular FileField in your models:

class Book(models.Model):
    name = models.CharField(_("Name"), max_length=255)
    content = models.FileField(_("Content"), upload_to=settings.CONTENT_URL)

you can easily convert this FileField to WeedFSFileField:

from djweed.db_fields import WeedFSFileField

class Book(models.Model):
    name = models.CharField(_("Name"), max_length=255)
    content = WeedFSFileField(_("Content"))

Note: there is no sense in upload_to keyword for Weed-FS as it uses flat file id structure.

After that you can use content almost as before.

>>> book = Book.objects.get(id=1)
>>> from django.core.files import File
>>> book.content = File(open('/tmp/book_content_1.txt'))
>>> book.save()
>>> Book.objects.filter(id=1).update(content=File(open('/tmp/book_content_2.txt')))
>>> book.content.size
100
>>> book.content.storage_url
http://127.0.0.1:9300/3,1f23101a
>>> book.content.name
u"3,1f23101a:book_content_2.txt"
>>> book.content.verbose_name
u"book_content_2.txt"
>>> book.content.content[:41]
u"These are first words in the book content"

Furthermore, django-weed has integration with Nginx’s X-Accel-Redirect so you can safely serve data from Weed-FS. You have to add djweed to your INSTALLED_APPS in settings.py and assign url in urls.py to djweed.urls, i.e.:

(r'^media/', include('djweed.urls')),

There is no special Nginx configuration as it supports X-Accel-Redirect out of the box and the link will point to the Weed-FS volume.

Once you configured djweed you could get url from content:

>>> book.content.url
"/media/15/1/content/book_content_2.txt"

Download files

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

Source Distribution

django-weed-0.1.1.tar.gz (3.9 kB view details)

Uploaded Source

File details

Details for the file django-weed-0.1.1.tar.gz.

File metadata

  • Download URL: django-weed-0.1.1.tar.gz
  • Upload date:
  • Size: 3.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for django-weed-0.1.1.tar.gz
Algorithm Hash digest
SHA256 cb1a6a2dcebed74ca851420305b3dec0cfa610014e92e88f30debd3f55aad7be
MD5 ff5e1f3d4057b276e88b6f3fdebd3223
BLAKE2b-256 3c85fda89d5c011733826052fe695140f5903480a0e2b04c55a4d6986270339c

See more details on using hashes here.

Release history Release notifications | RSS feed

0.2.3

1 file

0.2.2

1 file

0.2.1

1 file

0.2.0

1 file

0.1.2

1 file

This release

0.1.1 This release

1 file

0.1

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page