Beispiel #1
0
    def _generateHeaders(self, keyName, expires =None, eTag =None, maxAge =-1):
        """Doc..."""
        headers = dict()

        if expires:
            if isinstance(expires, unicode):
                headers['Expires'] = expires.encode('utf-8', 'ignore')
            elif isinstance(expires, str):
                headers['Expires'] = expires
            else:
                headers['Expires'] = TimeUtils.dateTimeToWebTimestamp(expires)
        elif eTag:
            headers['ETag'] = unicode(eTag)

        if maxAge > -1:
            headers['Cache-Control'] = 'public, max-age=' + unicode(maxAge)

        if keyName.endswith('.jpg'):
            contentType = MIME_TYPES.JPEG_IMAGE
        elif keyName.endswith('.png'):
            contentType = MIME_TYPES.PNG_IMAGE
        elif keyName.endswith('.gif'):
            contentType = MIME_TYPES.GIF_IMAGE
        else:
            contentType = FileUtils.getMimeType(keyName)
        if StringUtils.begins(contentType, ('text/', 'application/')):
            headers['Content-Type'] = contentType + '; charset=UTF-8'
        else:
            headers['Content-Type'] = contentType

        return headers
Beispiel #2
0
    def _generateHeaders(cls,
                         keyName,
                         expires=None,
                         eTag=None,
                         maxAge=-1,
                         gzipped=False):
        """Doc..."""
        headers = dict()

        if expires:
            if StringUtils.isStringType(expires):
                headers['Expires'] = StringUtils.toBytes(expires)
            elif StringUtils.isBinaryType(expires):
                headers['Expires'] = expires
            else:
                headers['Expires'] = StringUtils.toBytes(
                    TimeUtils.dateTimeToWebTimestamp(expires))
        elif eTag:
            headers['ETag'] = StringUtils.toBytes(eTag)

        if maxAge > -1:
            headers['Cache-Control'] = StringUtils.toBytes(
                'max-age=%s; public' % maxAge)

        if keyName.endswith('.jpg'):
            contentType = MIME_TYPES.JPEG_IMAGE
        elif keyName.endswith('.png'):
            contentType = MIME_TYPES.PNG_IMAGE
        elif keyName.endswith('.gif'):
            contentType = MIME_TYPES.GIF_IMAGE
        else:
            contentType = FileUtils.getMimeType(keyName)
        if StringUtils.begins(contentType, ('text/', 'application/')):
            contentType = '%s; charset=UTF-8' % contentType
        headers['Content-Type'] = contentType

        if gzipped:
            headers['Content-Encoding'] = 'gzip'

        return headers
Beispiel #3
0
    def _generateHeaders(
            cls, keyName, expires =None, eTag =None, maxAge =-1, gzipped =False
    ):
        """Doc..."""
        headers = dict()

        if expires:
            if StringUtils.isStringType(expires):
                headers['Expires'] = StringUtils.toBytes(expires)
            elif StringUtils.isBinaryType(expires):
                headers['Expires'] = expires
            else:
                headers['Expires'] = StringUtils.toBytes(
                    TimeUtils.dateTimeToWebTimestamp(expires))
        elif eTag:
            headers['ETag'] = StringUtils.toBytes(eTag)

        if maxAge > -1:
            headers['Cache-Control'] = StringUtils.toBytes(
                'max-age=%s; public' % maxAge)

        if keyName.endswith('.jpg'):
            contentType = MIME_TYPES.JPEG_IMAGE
        elif keyName.endswith('.png'):
            contentType = MIME_TYPES.PNG_IMAGE
        elif keyName.endswith('.gif'):
            contentType = MIME_TYPES.GIF_IMAGE
        else:
            contentType = FileUtils.getMimeType(keyName)
        if StringUtils.begins(contentType, ('text/', 'application/')):
            contentType = '%s; charset=UTF-8' % contentType
        headers['Content-Type'] = contentType

        if gzipped:
            headers['Content-Encoding'] = 'gzip'

        return headers