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,False
otherwise:>>> 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
Landscape
orPortrait
:>>> 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.False
if the folder is not empty or theFileObject
is not a folder:>>> fileobject.is_empty False
Version attributes¶
-
is_version
¶ true
if the File is aversion
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
orsite.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.