- tocdepth
3
An object representing a media file.
- param path
Relative path to a location within site.storage.location.
- param site
An optional FileBrowser Site.
For example:
from filebrowser.sites import site
from filebrowser.base import FileObject
fileobject = FileObject(os.path.join(site.directory,"testfolder","testimage.jpg"))
version = FileObject(os.path.join(fileobject.versions_basedir, "testfolder", "testimage_medium.jpg"))
path
Path relative to a storage location (including site.directory
):
>>> fileobject.path
'uploads/testfolder/testimage.jpg'
head
The directory name of pathname path
:
>>> fileobject.head
'uploads/testfolder'
filename
Name of the file (including the extension) or name of the folder:
>>> fileobject.filename
'testimage.jpg'
filename_lower
Lower type of filename
.
filename_root
Filename without extension:
>>> fileobject.filename_root
'testimage'
extension
File extension, including the dot. With a folder, the extensions is None
:
>>> fileobject.extension
'.jpg'
mimetype
Mimetype, based on http://docs.python.org/library/mimetypes.html:
>>> fileobject.mimetype
('image/jpeg', None)
filetype
Type of the file, as defined with EXTENSIONS
:
>>> fileobject.filetype
'Image'
format
Type of the file, as defined with SELECT_FORMATS
:
>>> fileobject.format
'file'
filesize
Filesize in Bytes:
>>> fileobject.filesize
870037L
date
Date, based on time.mktime
:
>>> fileobject.date
1299760347.0
datetime
Datetime object:
>>> fileobject.datetime
datetime.datetime(2011, 3, 10, 13, 32, 27)
exists
True
, if the path exists, False
otherwise:
>>> fileobject.exists
True
path
Path relative to a storage location (including site.directory
):
>>> fileobject.path
'uploads/testfolder/testimage.jpg'
path_relative_directory
Path relative to site.directory
:
>>> fileobject.path_relative_directory
'testfolder/testimage.jpg'
path_full
Absolute server path (based on storage.path
):
>>> fileobject.path_full
'/absolute/path/to/server/location/testfolder/testimage.jpg'
dirname
3.4
The directory (not including site.directory
):
>>> fileobject.dirname
'testfolder'
url
URL for the file/folder (based on storage.url
):
>>> fileobject.url
'/media/uploads/testfolder/testimage.jpg'
The image attributes are only useful if the FileObject
represents an image.
dimensions
Image dimensions as a tuple:
>>> fileobject.dimensions
(1000, 750)
width
Image width in px:
>>> fileobject.width
1000
height
Image height in px:
>>> fileobject.height
750
aspectratio
Aspect ratio (float format):
>>> fileobject.aspectratio
1.33534908
orientation
Image orientation, either Landscape
or Portrait
:
>>> fileobject.orientation
'Landscape'
The folder attributes make sense when the FileObject
represents a directory (not a file).
is_folder
True
, if path is a folder:
>>> fileobject.is_folder
False
is_empty
True
, if the folder is empty. False
if the folder is not empty or the FileObject
is not a folder:
>>> fileobject.is_empty
False
is_version
true
if the File is a version
of another File:
>>> fileobject.is_version
False
>>> version.is_version
True
versions_basedir
The relative path (from storage location) to the main versions folder. Either VERSIONS_BASEDIR
or site.directory
:
>>> fileobject.versions_basedir
'_versions'
>>> version.versions_basedir
'_versions'
original
Returns the original FileObject:
>>> fileobject.original
<FileObject: uploads/testfolder/testimage.jpg>
>>> version.original
<FileObject: uploads/testfolder/testimage.jpg>
original_filename
Get the filename of an original image from a version:
>>> fileobject.original_filename
'testimage.jpg'
>>> version.original_filename
'testimage.jpg'
versions()
List all filenames based on VERSIONS
:
>>> fileobject.versions()
['_versions/testfolder/testimage_admin_thumbnail.jpg',
'_versions/testfolder/testimage_thumbnail.jpg',
'_versions/testfolder/testimage_small.jpg',
'_versions/testfolder/testimage_medium.jpg',
'_versions/testfolder/testimage_big.jpg',
'_versions/testfolder/testimage_large.jpg']
>>> version.versions()
[]
Note
The versions are not being generated.
admin_versions()
List all filenames based on ADMIN_VERSIONS
:
>>> fileobject.admin_versions()
['_versions/testfolder/testimage_thumbnail.jpg',
'_versions/testfolder/testimage_small.jpg',
'_versions/testfolder/testimage_medium.jpg',
'_versions/testfolder/testimage_big.jpg',
'_versions/testfolder/testimage_large.jpg']
>>> version.admin_versions()
[]
Note
The versions are not being generated.
version_name(version_suffix, extra_options=None)
- param version_suffix
A suffix to compose the version name accordingly to the
settingsversions_version_namer
in use.- param extra_options
An optional
dict
to be used in the version generation.
Get the filename for a version:
>>> fileobject.version_name("medium")
'testimage_medium.jpg'
Note
The version is not being generated.
Files names can be customized using settingsversions_version_namer
.
version_path(version_suffix, extra_options=None)
- param version_suffix
A suffix to compose the version name accordingly to the
settingsversions_version_namer
in use.- param extra_options
An optional
dict
to be used in the version generation.
Get the path for a version:
>>> fileobject.version_path("medium")
'_versions/testfolder/testimage_medium.jpg'
Note
The version is not being generated.
version_generate(version_suffix, extra_options=None)
- param version_suffix
A suffix to compose the version name accordingly to the
settingsversions_version_namer
in use.- param extra_options
An optional
dict
to be used in the version generation.
An image version is generated by passing the source image through a series of image processors <versions__custom_processors>
. Each processor may alter the image, often dependent on the options it receives.
The options used in the processors chain is composed of the version
definition <versions>
, if version_suffix
is a key in settingsversions_versions
, plus any extra_options
provided. If no version definition was found and no extra options are provided, an empty dict will be used. A key in extra_options
will take precedence over the version definition.
Generate a version:
>>> fileobject.version_generate("medium")
<FileObject: uploads/testfolder/testimage_medium.jpg>
Please note that a version is only generated, if it does not already exist or if the original image is newer than the existing version.
delete()
Delete the File
or Folder
from the server.
Warning
If you delete a Folder, all items within the folder are being deleted.
delete_versions()
Delete all VERSIONS
.
delete_admin_versions()
Delete all ADMIN_VERSIONS
.