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$
|
$Id$
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
from datetime import datetime
|
||||||
|
from logging import getLogger
|
||||||
import os
|
import os
|
||||||
import shutil
|
import shutil
|
||||||
from zope.interface import implements
|
from zope.interface import implements
|
||||||
|
@ -34,6 +36,9 @@ from cybertools.storage.interfaces import IExternalStorage
|
||||||
DEFAULT_DIRECTORY = 'extfiles'
|
DEFAULT_DIRECTORY = 'extfiles'
|
||||||
|
|
||||||
|
|
||||||
|
logger = getLogger('cybertools.storage.filesystem')
|
||||||
|
|
||||||
|
|
||||||
class FileSystemStorage(object):
|
class FileSystemStorage(object):
|
||||||
|
|
||||||
implements(IExternalStorage)
|
implements(IExternalStorage)
|
||||||
|
@ -75,8 +80,7 @@ class FileSystemStorage(object):
|
||||||
f.close()
|
f.close()
|
||||||
return data
|
return data
|
||||||
except IOError, e:
|
except IOError, e:
|
||||||
from logging import getLogger
|
logger.warn(e)
|
||||||
getLogger('cybertools.storage.filesystem.FileSystemStorage').warn(e)
|
|
||||||
#'File %r cannot be read.' % fn)
|
#'File %r cannot be read.' % fn)
|
||||||
return ''
|
return ''
|
||||||
|
|
||||||
|
@ -86,10 +90,20 @@ class FileSystemStorage(object):
|
||||||
try:
|
try:
|
||||||
return os.path.getsize(fn)
|
return os.path.getsize(fn)
|
||||||
except OSError, e:
|
except OSError, e:
|
||||||
from logging import getLogger
|
logger.warn(e)
|
||||||
getLogger('cybertools.storage.filesystem.FileSystemStorage').warn(e)
|
|
||||||
return 0
|
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={}):
|
def getUniqueAddress(self, address, params={}):
|
||||||
subDir = params.get('subdirectory')
|
subDir = params.get('subdirectory')
|
||||||
return self.getDir(address, subDir)
|
return self.getDir(address, subDir)
|
||||||
|
|
Loading…
Add table
Reference in a new issue