FileObject¶
-
class
FileObject(path, site=None)¶ An object representing a media file.
Parameters: - path – Relative path to a location within site.storage.location.
- 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"))
Attributes¶
Initial Attributes¶
-
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)
General Attributes¶
-
filetype¶ Type of the file, as defined with
EXTENSIONS:>>> fileobject.filetype 'Image'
-
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,Falseotherwise:>>> fileobject.exists True
Path and URL attributes¶
-
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¶ New in version 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'
Image attributes¶
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
LandscapeorPortrait:>>> fileobject.orientation 'Landscape'
Folder attributes¶
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.Falseif the folder is not empty or theFileObjectis not a folder:>>> fileobject.is_empty False
Version attributes¶
-
is_version¶ trueif the File is aversionof 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_BASEDIRorsite.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'
Methods¶
Version methods¶
-
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)¶ Get the filename for a version:
>>> fileobject.version_name("medium") 'testimage_medium.jpg'
Note
The version is not being generated.
-
version_path(version_suffix)¶ 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)¶ 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.