'The representation of the data that should be uploaded to the
server. This might be compressed based on the content type and size.'

def payload(self):

    if (not hasattr(self, '_payload')):
        raw_data = self.data()
        if (self.extension() in self.engine.site.compress_extensions):
            compressed_data = compressString(raw_data)
            if (len(compressed_data) < len(raw_data)):
                self._is_compressed = True
                self._payload = compressed_data
                return self._payload
        self.is_compressed = False
        self._payload = raw_data
    return self._payload
