def bulk_download(sid, docs_selected): source = get_source(sid) filenames = [store.path(sid, doc['name']) for doc in docs_selected] zip = store.get_bulk_archive(filenames) return send_file(zip.name, mimetype="application/zip", attachment_filename=source.journalist_designation + ".zip", as_attachment=True)
def download(zip_basename, submissions): """Send client contents of ZIP-file *zip_basename*-<timestamp>.zip containing *submissions*. The ZIP-file, being a :class:`tempfile.NamedTemporaryFile`, is stored on disk only temporarily. :param str zip_basename: The basename of the ZIP-file download. :param list submissions: A list of :class:`db.Submission`s to include in the ZIP-file. """ zf = store.get_bulk_archive(submissions, zip_directory=zip_basename) attachment_filename = "{}--{}.zip".format( zip_basename, datetime.utcnow().strftime("%Y-%m-%d--%H-%M-%S")) # Mark the submissions that have been downloaded as such for submission in submissions: submission.downloaded = True db_session.commit() return send_file(zf.name, mimetype="application/zip", attachment_filename=attachment_filename, as_attachment=True)
def bulk_download(sid, docs_selected): filenames = [store.path(sid, doc["name"]) for doc in docs_selected] zip = store.get_bulk_archive(filenames) return send_file( zip.name, mimetype="application/zip", attachment_filename=db.display_id(sid, db.sqlalchemy_handle()) + ".zip", as_attachment=True, )
def bulk_download(sid, docs_selected): filenames = [store.path(sid, doc['name']) for doc in docs_selected] zip = store.get_bulk_archive(filenames) return send_file( zip.name, mimetype="application/zip", attachment_filename=db.display_id(sid, db.sqlalchemy_handle()) + ".zip", as_attachment=True)
def test_get_zip(self): sid = 'EQZGCJBRGISGOTC2NZVWG6LILJBHEV3CINNEWSCLLFTUWZJPKJFECLS2NZ4G4U3QOZCFKTTPNZMVIWDCJBBHMUDBGFHXCQ3R' files = ['abc1_msg.gpg', 'abc2_msg.gpg'] filenames = _setup_test_docs(sid, files) archive = zipfile.ZipFile(store.get_bulk_archive(filenames)) archivefile_contents = archive.namelist() for archived_file, actual_file in zip(archivefile_contents, filenames): actual_file_content = open(actual_file).read() zipped_file_content = archive.read(archived_file) self.assertEquals(zipped_file_content, actual_file_content)
def test_get_zip(self): source, _ = utils.db_helper.init_source() submissions = utils.db_helper.submit(source, 2) filenames = [os.path.join(config.STORE_DIR, source.filesystem_id, submission.filename) for submission in submissions] archive = zipfile.ZipFile(store.get_bulk_archive(submissions)) archivefile_contents = archive.namelist() for archived_file, actual_file in zip(archivefile_contents, filenames): actual_file_content = open(actual_file).read() zipped_file_content = archive.read(archived_file) self.assertEquals(zipped_file_content, actual_file_content)
def bulk_download(sid, items_selected): source = get_source(sid) filenames = [store.path(sid, item.filename) for item in items_selected] # Mark the submissions that are about to be downloaded as such for item in items_selected: if isinstance(item, Submission): item.downloaded = True db_session.commit() zf = store.get_bulk_archive(filenames, zip_directory=source.journalist_filename) attachment_filename = "{}--{}.zip".format( source.journalist_filename, datetime.utcnow().strftime("%Y-%m-%d--%H-%M-%S") ) return send_file(zf.name, mimetype="application/zip", attachment_filename=attachment_filename, as_attachment=True)
def bulk_download(sid, items_selected): source = get_source(sid) filenames = [store.path(sid, item.filename) for item in items_selected] # Mark the submissions that are about to be downloaded as such for item in items_selected: if isinstance(item, Submission): item.downloaded = True db_session.commit() zf = store.get_bulk_archive(filenames, zip_directory=source.journalist_filename) attachment_filename = "{}--{}.zip".format(source.journalist_filename, datetime.utcnow().strftime("%Y-%m-%d--%H-%M-%S")) return send_file(zf.name, mimetype="application/zip", attachment_filename=attachment_filename, as_attachment=True)
def test_get_zip(self): sid = 'EQZGCJBRGISGOTC2NZVWG6LILJBHEV3CINNEWSCLLFTUWZJPKJFECLS2NZ4G4U3QOZCFKTTPNZMVIWDCJBBHMUDBGFHXCQ3R' source = Source(sid, crypto_util.display_id()) db_session.add(source) db_session.commit() files = ['1-abc1-msg.gpg', '2-abc2-msg.gpg'] filenames = common.setup_test_docs(sid, files) archive = zipfile.ZipFile(store.get_bulk_archive(filenames)) archivefile_contents = archive.namelist() for archived_file, actual_file in zip(archivefile_contents, filenames): actual_file_content = open(actual_file).read() zipped_file_content = archive.read(archived_file) self.assertEquals(zipped_file_content, actual_file_content)
def bulk_download(sid, docs_selected): filenames = [store.path(sid, doc['name']) for doc in docs_selected] zip = store.get_bulk_archive(filenames) return send_file(zip.name, mimetype="application/zip", attachment_filename=crypto_util.displayid(sid) + ".zip", as_attachment=True)