Exemplo n.º 1
0
def get_dummy_file(filename=None, content=None):
    global files_count
    files_count += 1

    if filename is None:
        filename = ''.join(six.unichr(x) for x in range(0x400, 0x40A)).join('-%d' % files_count)

    content_type = u'application/octet'

    if content is None:
        content = base64.b64decode(VALID_BASE64_IMG)

    temporary_file = SecureTemporaryFile(Settings.tmp_path)

    with temporary_file.open('w') as f:
        f.write(content)
        f.finalize_write()

    State.TempUploadFiles[os.path.basename(temporary_file.filepath)] = temporary_file

    return {
        'date': datetime_now(),
        'name': filename,
        'description': 'description',
        'body': temporary_file,
        'size': len(content),
        'filename': os.path.basename(temporary_file.filepath),
        'type': content_type,
        'submission': False
    }
Exemplo n.º 2
0
def get_dummy_file(filename=None, content=None):
    global files_count
    files_count += 1

    if filename is None:
        filename = ''.join(six.unichr(x) for x in range(0x400, 0x40A)).join('-%d' % files_count)

    content_type = u'application/octet'

    if content is None:
        content = base64.b64decode(VALID_BASE64_IMG)

    temporary_file = SecureTemporaryFile(Settings.tmp_path)

    with temporary_file.open('w') as f:
        f.write(content)
        f.finalize_write()

    State.TempUploadFiles[os.path.basename(temporary_file.filepath)] = temporary_file

    return {
        'date': datetime_now(),
        'name': filename,
        'description': 'description',
        'body': temporary_file,
        'size': len(content),
        'filename': os.path.basename(temporary_file.filepath),
        'type': content_type,
        'submission': False
    }
Exemplo n.º 3
0
def get_dummy_file(content=None):
    filename = generateRandomKey()

    content_type = 'application/octet'

    if content is None:
        content = base64.b64decode(VALID_BASE64_IMG)

    temporary_file = SecureTemporaryFile(Settings.tmp_path)

    with temporary_file.open('w') as f:
        f.write(content)
        f.finalize_write()

    State.TempUploadFiles[os.path.basename(
        temporary_file.filepath)] = temporary_file

    return {
        'id': filename,
        'date': datetime_now(),
        'name': filename,
        'description': 'description',
        'body': temporary_file,
        'size': len(content),
        'filename': os.path.basename(temporary_file.filepath),
        'type': content_type,
        'submission': False
    }
Exemplo n.º 4
0
    def test_temporary_file(self):
        a = SecureTemporaryFile(Settings.tmp_path)
        antani = "0123456789"
        with a.open('w') as f:
            for _ in range(1000):
                f.write(antani)
            f.finalize_write()

        with a.open('r') as f:
            for x in range(1000):
                self.assertTrue(antani == f.read(10))
Exemplo n.º 5
0
    def test_temporary_file(self):
        a = SecureTemporaryFile(Settings.tmp_path)
        antani = "0123456789"
        with a.open('w') as f:
            for _ in range(1000):
                f.write(antani)
            f.finalize_write()

        with a.open('r') as f:
            for x in range(1000):
                self.assertTrue(antani == text_type(f.read(10), 'utf-8'))
Exemplo n.º 6
0
    def process_file_upload(self):
        if b'flowFilename' not in self.request.args:
            return

        total_file_size = int(self.request.args[b'flowTotalSize'][0])
        file_id = self.request.args[b'flowIdentifier'][0].decode()

        chunk_size = len(self.request.args[b'file'][0])
        if ((chunk_size // (1024 * 1024)) >
                self.state.tenant_cache[self.request.tid].maximum_filesize
                or (total_file_size // (1024 * 1024)) >
                self.state.tenant_cache[self.request.tid].maximum_filesize):
            log.err("File upload request rejected: file too big",
                    tid=self.request.tid)
            raise errors.FileTooBig(
                self.state.tenant_cache[self.request.tid].maximum_filesize)

        if file_id not in self.state.TempUploadFiles:
            self.state.TempUploadFiles[file_id] = SecureTemporaryFile(
                Settings.tmp_path)

        f = self.state.TempUploadFiles[file_id]
        with f.open('w') as f:
            f.write(self.request.args[b'file'][0])

            if self.request.args[b'flowChunkNumber'][0] != self.request.args[
                    b'flowTotalChunks'][0]:
                return None

            f.finalize_write()

        mime_type, _ = mimetypes.guess_type(
            self.request.args[b'flowFilename'][0].decode())
        if mime_type is None:
            mime_type = 'application/octet-stream'

        filename = self.request.args[b'flowFilename'][0].decode()

        self.uploaded_file = {
            'id': file_id,
            'date': datetime_now(),
            'name': filename,
            'type': mime_type,
            'size': total_file_size,
            'filename': os.path.basename(f.filepath),
            'body': f,
            'description': self.request.args.get(b'description', [''])[0]
        }