Skip to main content

Small application that simplifies naming of uploaded files

Project description

dj-upload-to

Travis CI build status Code coverage percentage Latest version on PyPI Wheel Status Supported Python versions

Synopsis

Small application that simplifies naming of uploaded files. License is MIT.

Installation

You can get dj-upload-to release version from pypi with pip:

$ pip install dj-upload-to

or development one from github:

$ pip install -e git+https://github.com/marazmiki/dj-upload-to#egg=dj-upload-url

You’re not need include it into your INSTALLED_APPS

Usage

Assumes you have model:

from django.db import models
from dj_upload_to import UploadTo

upload_to = UploadTo()

class Model(models.Model):
    file = models.ImageField(upload_to=upload_to)

As you see, UploadTo generates callable object (with __call__ methodfor passing into upload_to attribute of FileField (see django upload_to docs for details)

When you save model with image originally named myphoto.JPG, file

will be saved with name such as:

model/ab/cd/abcdabcd-0123-4567-8901-234567890ab.jpg

where:

  • model is prefix automatically generated from model class. You can override it

  • ab is the first 2 char segment of filename

  • cd is the second 2 char segment of filename

  • abcdabcd-0123-4567-8901-234567890ab autogenerated with uuid filename

  • .jpg is a lower cased extension taken from original file

Customize

You can customize behavior of UploadTo with options in constructor:

  • prefix: prefix of filename. Default is dj_upload_to.not_provided. If None, prefix will be missed. If not explicitly set, will be generated automatically based on model class name

  • num_seg: number of parts of segmentation. Default is 2

  • seg_size: length of segment in chars. Default is 2

  • save_name: use original name without autogeneration. Default is False

There are some examples:

>>> model_instance = Model()

>>> # Disable prefix
>>> UploadTo(prefix=None)(model_instance, 'file.jpg')
u'c0/17/c01745b4-e70b-4dd8-a5f7-76fec32fcb83.jpg'

>>> # Explicitly given prefix
>>> UploadTo(prefix='my_files')(model_instance, 'file.jpg')
u'my_files/d9/a4/d9a4ef25-11b0-41bb-a543-baaac6553024.jpg'

>>> # Four segment and automatically generated prefix
>>> UploadTo(num_seg=4)(model_instance, 'file.jpg')
u'model/36/52/99/f6/365299f6-8dc5-4ca2-848d-965f002a9b72.jpg'

>>> # Segment length is 4 chars
>>> UploadTo(seg_size=4)(model_instance, 'file.jpg')
u'model/3142/f2ef/3142f2ef-2680-4a99-82fc-3c8d9d3179dc.jpg'

>>> # Save original filename
>>> UploadTo(save_name=True)(model_instance, 'file.jpg')
u'model/file.jpg'

>>> # Save original filename without prefix
>>> UploadTo(save_name=True, prefix=None)(model_instance, 'file.jpg')
u'file.jpg'

Contributing

Ideas, bugfixes, pull requests are welcome on GitHub

CHANGELOG

1.1

  • Add deconstruct() support

1.0.2

  • Fix sad setup.py bug

1.0.1

  • Add prefix disabling

  • Add changelog

  • Updated docs

1.0.0

Initial release

Project details


Download files

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

Source Distributions

dj-upload-to-1.1.zip (8.9 kB view details)

Uploaded Source

dj-upload-to-1.1.tar.gz (4.1 kB view details)

Uploaded Source

dj-upload-to-1.1.tar.bz2 (4.4 kB view details)

Uploaded Source

Built Distribution

dj_upload_to-1.1-py3-none-any.whl (6.0 kB view details)

Uploaded Python 3

File details

Details for the file dj-upload-to-1.1.zip.

File metadata

  • Download URL: dj-upload-to-1.1.zip
  • Upload date:
  • Size: 8.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for dj-upload-to-1.1.zip
Algorithm Hash digest
SHA256 005275f0321af7146371fded4039857fca4b1b6a67c5f8c0e3fed8bf3677dba2
MD5 1ae3658e940559e3f65af82a2189e525
BLAKE2b-256 38da13722de752289fb38fdadd6e7fea0d0799a2eaef692782a8d4765011e6a0

See more details on using hashes here.

File details

Details for the file dj-upload-to-1.1.tar.gz.

File metadata

  • Download URL: dj-upload-to-1.1.tar.gz
  • Upload date:
  • Size: 4.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for dj-upload-to-1.1.tar.gz
Algorithm Hash digest
SHA256 ef9794c9022d6b3f0499a0cbce6f680427180a1ee95e05da0bde636c8fa309a3
MD5 f91be5c20b8431a6ea2f200e3c4f1b70
BLAKE2b-256 25968f2e029d4706e0b09321da52cad014fb8d0d1b631ed761e0f64e988bd5b8

See more details on using hashes here.

File details

Details for the file dj-upload-to-1.1.tar.bz2.

File metadata

  • Download URL: dj-upload-to-1.1.tar.bz2
  • Upload date:
  • Size: 4.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for dj-upload-to-1.1.tar.bz2
Algorithm Hash digest
SHA256 fe6321220e8822ad03c70027a8c83f7ee4bd3076642b6b5b8c1c30c370131e2f
MD5 38f46af1e480da675b8a502256a1570d
BLAKE2b-256 14913c3034695404eddce61ff1935574e060bd248562b6935d8c417d01096f86

See more details on using hashes here.

File details

Details for the file dj_upload_to-1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for dj_upload_to-1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 85c4c599b06b3ba2b23d22748a759286a8aa10c230aa35cecf90aea0a237043f
MD5 33cb9dadd93670cb4c11a33fd2999632
BLAKE2b-256 505582ebae108388c4356072de944a39d43bbfb7eb9a378092e6c7a9f17f3cd7

See more details on using hashes here.

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