filesystem storage: provide file modification date
git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@3967 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
parent
c0d15a34ef
commit
5ef2d631df
1 changed files with 18 additions and 4 deletions
|
@ -22,6 +22,8 @@ Storing data in files in the file system.
|
|||
$Id$
|
||||
"""
|
||||
|
||||
from datetime import datetime
|
||||
from logging import getLogger
|
||||
import os
|
||||
import shutil
|
||||
from zope.interface import implements
|
||||
|
@ -34,6 +36,9 @@ from cybertools.storage.interfaces import IExternalStorage
|
|||
DEFAULT_DIRECTORY = 'extfiles'
|
||||
|
||||
|
||||
logger = getLogger('cybertools.storage.filesystem')
|
||||
|
||||
|
||||
class FileSystemStorage(object):
|
||||
|
||||
implements(IExternalStorage)
|
||||
|
@ -75,8 +80,7 @@ class FileSystemStorage(object):
|
|||
f.close()
|
||||
return data
|
||||
except IOError, e:
|
||||
from logging import getLogger
|
||||
getLogger('cybertools.storage.filesystem.FileSystemStorage').warn(e)
|
||||
logger.warn(e)
|
||||
#'File %r cannot be read.' % fn)
|
||||
return ''
|
||||
|
||||
|
@ -86,10 +90,20 @@ class FileSystemStorage(object):
|
|||
try:
|
||||
return os.path.getsize(fn)
|
||||
except OSError, e:
|
||||
from logging import getLogger
|
||||
getLogger('cybertools.storage.filesystem.FileSystemStorage').warn(e)
|
||||
logger.warn(e)
|
||||
return 0
|
||||
|
||||
def getMTime(self, address, params={}):
|
||||
subDir = params.get('subdirectory')
|
||||
fn = self.getDir(address, subDir)
|
||||
try:
|
||||
ts = os.path.getmtime(fn)
|
||||
if ts:
|
||||
return datetime.fromtimestamp(ts)
|
||||
except OSError, e:
|
||||
logger.warn(e)
|
||||
return None
|
||||
|
||||
def getUniqueAddress(self, address, params={}):
|
||||
subDir = params.get('subdirectory')
|
||||
return self.getDir(address, subDir)
|
||||
|
|
Loading…
Add table
Reference in a new issue