本文整理汇总了Python中webdav.common.rfc1123_date函数的典型用法代码示例。如果您正苦于以下问题:Python rfc1123_date函数的具体用法?Python rfc1123_date怎么用?Python rfc1123_date使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了rfc1123_date函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: http_response_with_file
def http_response_with_file(request, response, data_file, content_type,
file_size, file_mtime):
# HTTP If-Modified-Since header handling.
header=request.get_header('If-Modified-Since', None)
if header is not None:
header=string.split(header, ';')[0]
# Some proxies seem to send invalid date strings for this
# header. If the date string is not valid, we ignore it
# rather than raise an error to be generally consistent
# with common servers such as Apache (which can usually
# understand the screwy date string as a lucky side effect
# of the way they parse it).
# This happens to be what RFC2616 tells us to do in the face of an
# invalid date.
try: mod_since=long(DateTime(header).timeTime())
except: mod_since=None
if mod_since is not None:
last_mod = long(file_mtime)
if last_mod > 0 and last_mod <= mod_since:
# Set header values since apache caching will return Content-Length
# of 0 in response if size is not set here
response.setHeader('Last-Modified', rfc1123_date(file_mtime))
response.setHeader('Content-Type', content_type)
response.setHeader('Content-Length', file_size)
response.setStatus(304)
return
response.setHeader('Last-Modified', rfc1123_date(file_mtime))
response.setHeader('Content-Type', content_type)
response.setHeader('Content-Length', file_size)
for chunk in iter_file_data(data_file):
response.write(chunk)
开发者ID:eea,项目名称:Products.Reportek,代码行数:33,代码来源:RepUtils.py
示例2: test_index_html
def test_index_html( self ):
path, ref = self._extractFile()
import os
from webdav.common import rfc1123_date
mod_time = os.stat( path )[ 8 ]
image = self._makeOne( 'test_image', 'test_image.gif' )
image = image.__of__( self.root )
data = image.index_html( self.REQUEST, self.RESPONSE )
self.assertEqual( len( data ), len( ref ) )
self.assertEqual( data, ref )
#
# ICK! 'HTTPResponse.getHeader' doesn't case-flatten the key!
#
self.assertEqual( self.RESPONSE.getHeader( 'Content-Length'.lower() )
, str( len( ref ) ) )
self.assertEqual( self.RESPONSE.getHeader( 'Content-Type'.lower() )
, 'image/gif' )
self.assertEqual( self.RESPONSE.getHeader( 'Last-Modified'.lower() )
, rfc1123_date( mod_time ) )
开发者ID:goschtl,项目名称:zope,代码行数:25,代码来源:test_FSImage.py
示例3: test_index_html_200_with_cpm
def test_index_html_200_with_cpm( self ):
# should behave the same as without cpm installed
from Products.CMFCore.tests.base.dummy import DummyCachingManager
self.root.caching_policy_manager = DummyCachingManager()
path, ref = self._extractFile('test_file.swf')
import os
from webdav.common import rfc1123_date
file = self._makeOne( 'test_file', 'test_file.swf' )
file = file.__of__( self.root )
mod_time = os.stat( path )[ 8 ]
data = file.index_html( self.REQUEST, self.RESPONSE )
self.assertEqual( len( data ), len( ref ) )
self.assertEqual( data, ref )
# ICK! 'HTTPResponse.getHeader' doesn't case-flatten the key!
self.assertEqual( self.RESPONSE.getHeader( 'Content-Length'.lower() )
, str(len(ref)) )
self.assertEqual( self.RESPONSE.getHeader( 'Content-Type'.lower() )
, 'application/octet-stream' )
self.assertEqual( self.RESPONSE.getHeader( 'Last-Modified'.lower() )
, rfc1123_date( mod_time ) )
开发者ID:goschtl,项目名称:zope,代码行数:25,代码来源:test_FSFile.py
示例4: _if_modified_since_request_handler
def _if_modified_since_request_handler(self, REQUEST):
""" HTTP If-Modified-Since header handling: return True if
we can handle this request by returning a 304 response.
"""
header = REQUEST.get_header("If-Modified-Since", None)
if header is not None:
header = string.split(header, ";")[0]
try:
mod_since = long(DateTime(header).timeTime())
except:
mod_since = None
if mod_since is not None:
if self._p_mtime:
last_mod = long(self._p_mtime)
else:
last_mod = long(0)
if last_mod > 0 and last_mod < mod_since:
# Set headers for Apache caching
last_mod = rfc1123_date(self._p_mtime)
REQUEST.RESPONSE.setHeader("Last-Modified", last_mod)
REQUEST.RESPONSE.setHeader("Content-Type", self.content_type)
# RFC violation. See http://collector.zope.org/Zope/544
# REQUEST.RESPONSE.setHeader('Content-Length', self.get_size())
REQUEST.RESPONSE.setStatus(304)
return 1
开发者ID:eaudeweb,项目名称:naaya,代码行数:25,代码来源:ExtFile.py
示例5: index_html
def index_html(self, REQUEST, RESPONSE):
"""
The default view of the contents of a File or Image.
Returns the contents of the file or image. Also, sets the
Content-Type HTTP header to the objects content type.
"""
# HTTP If-Modified-Since header handling.
data = self._readFile()
header=REQUEST.get_header('If-Modified-Since', None)
if header is not None:
header=string.split(header, ';')[0]
# Some proxies seem to send invalid date strings for this
# header. If the date string is not valid, we ignore it
# rather than raise an error to be generally consistent
# with common servers such as Apache (which can usually
# understand the screwy date string as a lucky side effect
# of the way they parse it).
try: mod_since=long(DateTime(header).timeTime())
except: mod_since=None
if mod_since is not None:
last_mod = self.file_mod_time
if last_mod > 0 and last_mod <= mod_since:
RESPONSE.setStatus(304)
return ''
RESPONSE.setHeader('Last-Modified', rfc1123_date(self.file_mod_time))
RESPONSE.setHeader('Content-Type', self.content_type)
RESPONSE.setHeader('Content-Length', len(data))
return data
开发者ID:goschtl,项目名称:zope,代码行数:31,代码来源:FSImage.py
示例6: index_html
def index_html(self, instance, REQUEST=None, RESPONSE=None, disposition='inline'):
""" make it directly viewable when entering the objects URL """
if REQUEST is None:
REQUEST = instance.REQUEST
if RESPONSE is None:
RESPONSE = REQUEST.RESPONSE
blob = self.getUnwrapped(instance, raw=True) # TODO: why 'raw'?
RESPONSE.setHeader('Last-Modified', rfc1123_date(instance._p_mtime))
RESPONSE.setHeader('Content-Type', self.getContentType(instance))
# The only change is to comment out this header:
#RESPONSE.setHeader('Accept-Ranges', 'bytes')
if handleIfModifiedSince(instance, REQUEST, RESPONSE):
return ''
length = blob.get_size()
RESPONSE.setHeader('Content-Length', length)
filename = self.getFilename(instance)
if filename is not None:
filename = IUserPreferredFileNameNormalizer(REQUEST).normalize(
unicode(filename, instance.getCharset()))
header_value = contentDispositionHeader(
disposition=disposition,
filename=filename)
RESPONSE.setHeader("Content-disposition", header_value)
range = handleRequestRange(instance, length, REQUEST, RESPONSE)
return blob.getIterator(**range)
开发者ID:EU-OSHA,项目名称:osha.policy,代码行数:25,代码来源:blob_field_patch.py
示例7: get_logo
def get_logo(self, disposition='inline', headers=True):
portal = getToolByName(self.context, 'portal_url').getPortalObject()
customstyles_util = CustomStylesUtility(portal)
customstyles = customstyles_util.annotations.get(
'customstyles', OOBTree(DEFAULT_STYLES))
REQUEST = self.request
RESPONSE = REQUEST.RESPONSE
blob = LOGO_KEY in customstyles and customstyles[LOGO_RIGHT_KEY] or None
if not blob:
return ''
length = blob.get_size()
if headers:
RESPONSE.setHeader('Last-Modified',
rfc1123_date(self.context._p_mtime))
RESPONSE.setHeader('Content-Type', blob.getContentType())
RESPONSE.setHeader('Accept-Ranges', 'bytes')
if handleIfModifiedSince(self.context, REQUEST, RESPONSE):
return ''
RESPONSE.setHeader('Content-Length', length)
filename = blob.getFilename()
if filename is not None:
filename = IUserPreferredFileNameNormalizer(REQUEST).normalize(
unicode(filename, self.context.getCharset()))
header_value = contentDispositionHeader(
disposition=disposition,
filename=filename)
RESPONSE.setHeader("Content-disposition", header_value)
range = handleRequestRange(self.context, length, REQUEST, RESPONSE)
return blob.getIterator(**range)
开发者ID:4teamwork,项目名称:opengever.core,代码行数:33,代码来源:customstyles.py
示例8: test304ResponseSetsCache
def test304ResponseSetsCache(self):
response = self.publish(self.file_path,
env={'HTTP_IF_MODIFIED_SINCE': rfc1123_date(DateTime()+7)},
basic=user_auth)
self.assertEqual(response.getStatus(), 304)
self.assertEqual(self.cache.data, None)
self.assertEqual(self.cache.called, ['set'])
开发者ID:eaudeweb,项目名称:naaya,代码行数:7,代码来源:testCacheable.py
示例9: __call__
def __call__(self):
sm = getSecurityManager()
if not sm.checkPermission(permissions.View, self.context.context):
raise Unauthorized
settings = self.context.settings
filepath = self.context.filepath
blob = settings.blob_files[filepath]
blobfi = openBlob(blob)
length = os.fstat(blobfi.fileno()).st_size
blobfi.close()
ext = os.path.splitext(os.path.normcase(filepath))[1][1:]
if ext == 'txt':
ct = 'text/plain'
else:
ct = 'image/%s' % ext
self.request.response.setHeader('Last-Modified',
rfc1123_date(self.context._p_mtime))
self.request.response.setHeader('Accept-Ranges', 'bytes')
self.request.response.setHeader("Content-Length", length)
self.request.response.setHeader('Content-Type', ct)
request_range = handleRequestRange(
self.context, length, self.request, self.request.response)
return BlobStreamIterator(blob, **request_range)
开发者ID:collective,项目名称:collective.documentviewer,代码行数:25,代码来源:traverse.py
示例10: _FSCacheHeaders
def _FSCacheHeaders(obj):
REQUEST = getattr(obj, 'REQUEST', None)
if REQUEST is None:
return False
RESPONSE = REQUEST.RESPONSE
header = REQUEST.get_header('If-Modified-Since', None)
last_mod = obj._file_mod_time
if header is not None:
header = header.split(';')[0]
# Some proxies seem to send invalid date strings for this
# header. If the date string is not valid, we ignore it
# rather than raise an error to be generally consistent
# with common servers such as Apache (which can usually
# understand the screwy date string as a lucky side effect
# of the way they parse it).
try:
mod_since=DateTime(header)
mod_since=long(mod_since.timeTime())
except TypeError:
mod_since=None
if mod_since is not None:
if last_mod > 0 and last_mod <= mod_since:
RESPONSE.setStatus(304)
return True
#Last-Modified will get stomped on by a cache policy if there is
#one set....
RESPONSE.setHeader('Last-Modified', rfc1123_date(last_mod))
开发者ID:goschtl,项目名称:zope,代码行数:32,代码来源:utils.py
示例11: test_index_html_with_304_and_caching
def test_index_html_with_304_and_caching( self ):
# See collector #355
self.root.caching_policy_manager = DummyCachingManager()
original_len = len(self.RESPONSE.headers)
path, ref = self._extractFile()
import os
from webdav.common import rfc1123_date
mod_time = os.stat( path )[ 8 ]
image = self._makeOne( 'test_image', 'test_image.gif' )
image = image.__of__( self.root )
self.REQUEST.environ[ 'IF_MODIFIED_SINCE'
] = '%s;' % rfc1123_date( mod_time+3600 )
data = image.index_html( self.REQUEST, self.RESPONSE )
self.assertEqual( data, '' )
self.assertEqual( self.RESPONSE.getStatus(), 304 )
headers = self.RESPONSE.headers
self.failUnless(len(headers) >= original_len + 3)
self.failUnless('foo' in headers.keys())
self.failUnless('bar' in headers.keys())
self.assertEqual(headers['test_path'], '/test_image')
开发者ID:goschtl,项目名称:zope,代码行数:28,代码来源:test_FSImage.py
示例12: index_html
def index_html(self, REQUEST=None, RESPONSE=None, charset='utf-8', disposition='inline'):
""" make it directly viewable when entering the objects URL """
if REQUEST is None:
REQUEST = self.REQUEST
if RESPONSE is None:
RESPONSE = REQUEST.RESPONSE
RESPONSE.setHeader('Last-Modified', rfc1123_date(self._p_mtime))
RESPONSE.setHeader('Content-Type', self.getContentType())
RESPONSE.setHeader('Accept-Ranges', 'bytes')
if handleIfModifiedSince(self, REQUEST, RESPONSE):
return ''
length = self.get_size()
RESPONSE.setHeader('Content-Length', length)
filename = self.getFilename()
if filename is not None:
if not isinstance(filename, unicode):
filename = unicode(filename, charset)
filename = IUserPreferredFileNameNormalizer(REQUEST).normalize(
filename)
header_value = contentDispositionHeader(
disposition=disposition,
filename=filename)
RESPONSE.setHeader("Content-disposition", header_value)
request_range = handleRequestRange(self, length, REQUEST, RESPONSE)
return self.getIterator(**request_range)
开发者ID:keul,项目名称:plone.app.blob,代码行数:32,代码来源:field.py
示例13: HEAD
def HEAD(self, REQUEST, RESPONSE):
"""Retrieve resource information without a response body."""
self.dav__init(REQUEST, RESPONSE)
content_type=None
if hasattr(self, 'content_type'):
content_type=absattr(self.content_type)
if content_type is None:
url=urlfix(REQUEST['URL'], 'HEAD')
name=unquote(filter(None, url.split( '/')[-1]))
content_type, encoding=mimetypes.guess_type(name)
if content_type is None:
if hasattr(self, 'default_content_type'):
content_type=absattr(self.default_content_type)
if content_type is None:
content_type = 'application/octet-stream'
RESPONSE.setHeader('Content-Type', content_type.lower())
if hasattr(aq_base(self), 'get_size'):
RESPONSE.setHeader('Content-Length', absattr(self.get_size))
if hasattr(self, '_p_mtime'):
mtime=rfc1123_date(self._p_mtime)
RESPONSE.setHeader('Last-Modified', mtime)
if hasattr(aq_base(self), 'http__etag'):
etag = self.http__etag(readonly=1)
if etag:
RESPONSE.setHeader('Etag', etag)
RESPONSE.setStatus(200)
return RESPONSE
开发者ID:nacho22martin,项目名称:tesis,代码行数:29,代码来源:Resource.py
示例14: test_index_html_with_304_and_caching
def test_index_html_with_304_and_caching( self ):
# See collector #355
self._setupCachingPolicyManager(DummyCachingManager())
original_len = len(self.RESPONSE.headers)
path, ref = self._extractFile()
from webdav.common import rfc1123_date
self.root.image = self._makeOne( 'test_image', 'test_image.gif' )
image = self.root.image
transaction.savepoint(optimistic=True)
mod_time = image.modified()
self.REQUEST.environ[ 'IF_MODIFIED_SINCE'
] = '%s;' % rfc1123_date( mod_time+1 )
data = image.index_html( self.REQUEST, self.RESPONSE )
self.assertEqual( data, '' )
self.assertEqual( self.RESPONSE.getStatus(), 304 )
headers = self.RESPONSE.headers
self.failUnless(len(headers) >= original_len + 3)
self.failUnless('foo' in headers.keys())
self.failUnless('bar' in headers.keys())
self.assertEqual(headers['test_path'], '/test_image')
开发者ID:nacho22martin,项目名称:tesis,代码行数:28,代码来源:test_Image.py
示例15: render_attachment_preview
def render_attachment_preview(self, attachment):
sm = getSecurityManager()
if not sm.checkPermission(permissions.View, self.context):
raise Unauthorized
r = self.request.response
settings = Settings(attachment)
if self.preview_type not in ("large", "normal", "small"):
self.preview_type = "small"
if self.page is None:
self.page = 1
filepath = u"%s/dump_%s.%s" % (self.preview_type, self.page, settings.pdf_image_format)
blob = settings.blob_files[filepath]
blobfi = openBlob(blob)
length = os.fstat(blobfi.fileno()).st_size
blobfi.close()
ext = os.path.splitext(os.path.normcase(filepath))[1][1:]
if ext == "txt":
ct = "text/plain"
else:
ct = "image/%s" % ext
r.setHeader("Content-Type", ct)
r.setHeader("Last-Modified", rfc1123_date(self.context._p_mtime))
r.setHeader("Accept-Ranges", "bytes")
r.setHeader("Content-Length", length)
request_range = handleRequestRange(self.context, length, self.request, self.request.response)
return BlobStreamIterator(blob, **request_range)
开发者ID:sudhan77,项目名称:ploneintranet,代码行数:29,代码来源:attachments.py
示例16: test_index_html
def test_index_html( self ):
path, ref = self._extractFile()
import os
from webdav.common import rfc1123_date
mod_time = os.stat( path )[ 8 ]
file = self._makeOne( 'test_file', 'test_file.swf' )
file = file.__of__( self.root )
data = file.index_html( self.REQUEST, self.RESPONSE )
self.assertEqual( len( data ), len( ref ) )
self.assertEqual( data, ref )
# ICK! 'HTTPResponse.getHeader' doesn't case-flatten the key!
# for Zope versions before 2.6.1: Content-Length has to be stringified
self.assertEqual( str( self.RESPONSE.getHeader(
'Content-Length'.lower() ) )
, str(len(ref)) )
self.assertEqual( self.RESPONSE.getHeader( 'Content-Type'.lower() )
, 'application/octet-stream' )
self.assertEqual( self.RESPONSE.getHeader( 'Last-Modified'.lower() )
, rfc1123_date( mod_time ) )
开发者ID:goschtl,项目名称:zope,代码行数:25,代码来源:test_FSFile.py
示例17: index_html
def index_html (self, icon=0, preview=0, width=None, height=None,
REQUEST=None):
""" Return the file with it's corresponding MIME-type """
if REQUEST is not None:
if self._if_modified_since_request_handler(REQUEST):
self.ZCacheable_set(None)
return ''
if self._redirect_default_view_request_handler(icon, preview, REQUEST):
return ''
filename, content_type, icon, preview = self._get_file_to_serve(icon, preview)
filename = self._get_fsname(filename)
if _debug > 1: logger.info('serving %s, %s, %s, %s' %(filename, content_type, icon, preview))
if filename:
size = os.stat(filename)[6]
else:
filename = self._get_icon_file(broken=True)
size = os.stat(filename)[6]
content_type = 'image/gif'
icon = 1
if icon==0 and width is not None and height is not None:
data = TemporaryFile() # hold resized image
try:
from PIL import Image
im = Image.open(filename)
if im.mode!='RGB':
im = im.convert('RGB')
filter = Image.BICUBIC
if hasattr(Image, 'ANTIALIAS'): # PIL 1.1.3
filter = Image.ANTIALIAS
im = im.resize((int(width),int(height)), filter)
im.save(data, 'JPEG', quality=85)
except:
data = open(filename, 'rb')
else:
data.seek(0,2)
size = data.tell()
data.seek(0)
content_type = 'image/jpeg'
else:
data = open(filename, 'rb')
if REQUEST is not None:
last_mod = rfc1123_date(self._p_mtime)
REQUEST.RESPONSE.setHeader('Last-Modified', last_mod)
REQUEST.RESPONSE.setHeader('Content-Type', content_type)
REQUEST.RESPONSE.setHeader('Content-Length', size)
self.ZCacheable_set(None)
return stream_iterator(data)
try:
return data.read()
finally:
data.close()
开发者ID:clearwired,项目名称:Blend-CMS,代码行数:59,代码来源:ExtFile.py
示例18: testRedirectDefaultViewReturns304
def testRedirectDefaultViewReturns304(self):
self.file.manage_file_upload(gifImage)
self.file.redirect_default_view = 1
response = self.publish(self.file_path,
env={'HTTP_IF_MODIFIED_SINCE': rfc1123_date(DateTime()+7)},
basic=user_auth)
self.assertEqual(response.getStatus(), 304)
self.assertEqual(response.getHeader('Location'), None)
开发者ID:eaudeweb,项目名称:naaya,代码行数:8,代码来源:testCacheable.py
示例19: view_image
def view_image(self, REQUEST, RESPONSE):
""" The default view of the contents of an Image.
Returns the contents of the file or image. Also, sets the
Content-Type HTTP header to the objects content type.
"""
# HTTP If-Modified-Since header handling.
header=REQUEST.get_header('If-Modified-Since', None)
if header is not None:
header=string.split(header, ';')[0]
# Some proxies seem to send invalid date strings for this
# header. If the date string is not valid, we ignore it
# rather than raise an error to be generally consistent
# with common servers such as Apache (which can usually
# understand the screwy date string as a lucky side effect
# of the way they parse it).
try: mod_since=long(DateTime(header).timeTime())
except: mod_since=None
last_mod = long(0)
if mod_since is not None:
if self._p_mtime:
last_mod = long(self._p_mtime)
else:
last_mod = long(0)
if last_mod > 0 and last_mod <= mod_since:
# Set header values since apache caching will return Content-Length
# of 0 in response if size is not set here
RESPONSE.setHeader('Last-Modified', rfc1123_date(self._p_mtime))
RESPONSE.setHeader('Content-Type', self._v_image['content_type'])
RESPONSE.setHeader('Content-Length', self._v_image['size'])
RESPONSE.setStatus(304)
return ''
RESPONSE.setHeader('Last-Modified', rfc1123_date(self._p_mtime))
RESPONSE.setHeader('Content-Type', self._v_image['content_type'])
RESPONSE.setHeader('Content-Length', self._v_image['size'])
data=self._v_image['data']
if type(data) is type(''): return data
while data is not None:
RESPONSE.write(data.data)
data=data.next
return ''
开发者ID:eaudeweb,项目名称:EionetProducts,代码行数:45,代码来源:RDFSummary.py
示例20: other_headers
def other_headers(self, headers):
if self._include_last_modified and 'Last-Modified' not in headers:
# If missing, add a last-modified header with the modification time.
modification = self.context.get_modification_datetime()
if modification is not None:
self.response.setHeader(
'Last-Modified',
rfc1123_date(modification))
super(HTTPResponseHeaders, self).other_headers(headers)
开发者ID:silvacms,项目名称:silva.core.views,代码行数:9,代码来源:httpheaders.py
注:本文中的webdav.common.rfc1123_date函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论