Пример #1
0
def duplicate_file(original_file, new_model_name, new_model_id):
    try:
        duplicated_file = File(
            user_id=current_user.id,
            name='',
            alias=original_file.alias
        )
        db.session.add(duplicated_file)
        db.session.commit()

        # use uuid generated by file model for name
        duplicate_name = duplicated_file.uuid + '.' + original_file.extension

        # create new file with name
        shutil.copy(
            os.path.join(current_app.config['ATTACHMENT_UPLOAD_FOLDER'], original_file.name),
            os.path.join(current_app.config['ATTACHMENT_UPLOAD_FOLDER'], duplicate_name)
        )

        current_app.logger.debug(
            "copied file id:" + str(original_file.id) + " from " + os.path.join(current_app.config['ATTACHMENT_UPLOAD_FOLDER'], original_file.name) +
            " to " + os.path.join(current_app.config['ATTACHMENT_UPLOAD_FOLDER'], duplicate_name))

        # update file record with name
        duplicated_file.name = duplicate_name
        db.session.commit()
    except Exception as e:
        db.session.rollback()
        raise e

    return duplicated_file
Пример #2
0
    def post(self, upload_token_id):
        if not KalturaAPI.enabled():
            abort(400, title="File Not Uploaded",
                message="Please use a valid upload method to attach files. You are not able to upload with this method based on the current settings.")

        kaltura_media = KalturaAPI.complete_upload_for_token(upload_token_id)

        on_save_kaltura_file.send(
            self,
            event_name=on_save_kaltura_file.name,
            user=current_user,
            data={'upload_token_id': upload_token_id})

        try:
            db_file = File(
                user_id=current_user.id,
                name='',
                alias=kaltura_media.file_name,
                kaltura_media=kaltura_media
            )
            db.session.add(db_file)
            db.session.commit()

            # use uuid generated by file model for name
            name = db_file.uuid + '.' + kaltura_media.extension

            # update file record with name
            db_file.name = name
            db.session.commit()
        except Exception as e:
            db.session.rollback()
            raise e

        return {'file': marshal(db_file, dataformat.get_file())}
Пример #3
0
    def post(self):
        uploaded_file = request.files.get('file')

        if not uploaded_file:
            abort(
                400,
                title="File Not Uploaded",
                message=
                "Sorry, no file was found to upload. Please try uploading again."
            )
        elif not allowed_file(
                uploaded_file.filename,
                current_app.config['ATTACHMENT_ALLOWED_EXTENSIONS']):
            extensions = [
                extension.upper() for extension in list(
                    current_app.config['ATTACHMENT_ALLOWED_EXTENSIONS'])
            ]
            extensions.sort()
            extensions = ", ".join(extensions)
            abort(
                400,
                title="File Not Uploaded",
                message=
                "Please try again with an approved file type, which includes: "
                + extensions + ".")

        on_save_file.send(self,
                          event_name=on_save_file.name,
                          user=current_user,
                          data={'file': uploaded_file.filename})

        try:
            db_file = File(user_id=current_user.id,
                           name='',
                           alias=uploaded_file.filename)
            db.session.add(db_file)
            db.session.commit()

            # use uuid generated by file model for name
            name = db_file.uuid + '.' + uploaded_file.filename.lower().rsplit(
                '.', 1)[1]

            # create new file with name
            full_path = os.path.join(
                current_app.config['ATTACHMENT_UPLOAD_FOLDER'], name)
            uploaded_file.save(full_path)
            current_app.logger.debug("Saved attachment {}/{}".format(
                current_app.config['ATTACHMENT_UPLOAD_FOLDER'], name))

            # update file record with name
            db_file.name = name
            db.session.commit()
        except Exception as e:
            db.session.rollback()
            raise e

        return {'file': marshal(db_file, dataformat.get_file())}
Пример #4
0
    def post(self):
        uploaded_file = request.files.get('file')

        if not uploaded_file:
            abort(400, title="File Not Uploaded", message="Sorry, no file was found to upload. Please try uploading again.")
        elif not allowed_file(uploaded_file.filename, current_app.config['ATTACHMENT_ALLOWED_EXTENSIONS']):
            extensions = [extension.upper() for extension in list(current_app.config['ATTACHMENT_ALLOWED_EXTENSIONS'])]
            extensions.sort()
            extensions = ", ".join(extensions)
            abort(400, title="File Not Uploaded", message="Please try again with an approved file type, which includes: "+extensions+".")

        on_save_file.send(
            self,
            event_name=on_save_file.name,
            user=current_user,
            data={'file': uploaded_file.filename})

        try:
            db_file = File(
                user_id=current_user.id,
                name='',
                alias=uploaded_file.filename
            )
            db.session.add(db_file)
            db.session.commit()

            # use uuid generated by file model for name
            name = db_file.uuid + '.' + uploaded_file.filename.lower().rsplit('.', 1)[1]

            # create new file with name
            full_path = os.path.join(current_app.config['ATTACHMENT_UPLOAD_FOLDER'], name)
            uploaded_file.save(full_path)
            current_app.logger.debug("Saved attachment {}/{}".format(current_app.config['ATTACHMENT_UPLOAD_FOLDER'], name))

            # update file record with name
            db_file.name = name
            db.session.commit()
        except Exception as e:
            db.session.rollback()
            raise e

        return {'file': marshal(db_file, dataformat.get_file())}
Пример #5
0
    def post(self):
        uploaded_file = request.files['file']

        on_save_file.send(
            self,
            event_name=on_save_file.name,
            user=current_user,
            data={'file': uploaded_file.filename})

        if uploaded_file and allowed_file(uploaded_file.filename, current_app.config['ATTACHMENT_ALLOWED_EXTENSIONS']):
            try:
                db_file = File(
                    user_id=current_user.id,
                    name='',
                    alias=uploaded_file.filename
                )
                db.session.add(db_file)
                db.session.commit()

                # use uuid generated by file model for name
                name = db_file.uuid + '.' + uploaded_file.filename.rsplit('.', 1)[1]

                # create new file with name
                full_path = os.path.join(current_app.config['ATTACHMENT_UPLOAD_FOLDER'], name)
                uploaded_file.save(full_path)
                current_app.logger.debug("Saved attachment {}/{}".format(current_app.config['ATTACHMENT_UPLOAD_FOLDER'], name))

                # update file record with name
                db_file.name = name
                db.session.commit()
            except Exception as e:
                db.session.rollback()
                raise e

            return {'file': marshal(db_file, dataformat.get_file())}

        return False