Ejemplo n.º 1
0
def show_video_2() -> 'video':
    if request.method == 'POST':
        session['video_title'] = request.form['title']
        videos_db = mongo_client_2.get_database('videos')
        fs        = GridFSBucket(videos_db)
        grid_out  = fs.open_download_stream_by_name(session['video_title'])
        contents  = grid_out.read()
        return Response(contents, mimetype='video/mp4')
    elif request.method == 'GET':
        videos_db = mongo_client_2.get_database('videos')
        fs        = GridFSBucket(videos_db)
        grid_out  = fs.open_download_stream_by_name(session['video_title'])
        contents  = grid_out.read()
        return Response(contents, mimetype='video/mp4')
Ejemplo n.º 2
0
def play_video():
    # def grab_title():
    #     video = request.form['movie_title']
    #     return video
    # client    = MongoClient(host='35.242.180.246:27017')
    # videoz     = request.form['movie_title']
    # if request.method == 'POST':
        # video = request.form['movie_title']
    client    = MongoClient('mongodb://*****:*****@35.242.180.246:27017')
    # client2   = 0
    # if request.form['movie_title'] != '':
    # video = request.form.get("movie_title", True)
    # video     = request.form['movie_title']
    # video     = 'SampleVideo_1.mp4'
    video = request.form.get('movie_title')
    if video == None:
        return 'None no variable'
    else:
        client    = MongoClient('mongodb://*****:*****@35.242.180.246:27017')
        videos_db = client.get_database('videos')
        fs        = GridFSBucket(videos_db)
        grid_out  = fs.open_download_stream_by_name(video)
        contents  = grid_out.read()
        # return video
        return Response(contents, mimetype='video/mp4')
Ejemplo n.º 3
0
def stream(request, pk):
    selected_track = Tracks.objects.get(pk=pk)
    print("Downloaded")
    db = MongoClient().MusicDB
    fs = GridFSBucket(db)
    music_file_stream = fs.open_download_stream_by_name(
        selected_track.track_name)
    response = HttpResponse(music_file_stream.read(),
                            content_type='content_type: audio/mpeg')

    return response
Ejemplo n.º 4
0
def download(request, pk):
    selected_track = Tracks.objects.get(pk=pk)
    print("Downloaded")
    db = MongoClient().MusicDB
    fs = GridFSBucket(db)
    music_file_stream = fs.open_download_stream_by_name(
        selected_track.track_name)
    response = HttpResponse(music_file_stream.read(),
                            content_type='content_type: audio/mpeg')
    response['Content-Disposition'] = 'attachment; filename=' + (str)(
        selected_track.actual_track)
    return response
class VideoManagement:
    def __init__(self, request, mongo):
        self.request = request
        self.mongo = mongo
        self.fs = GridFSBucket(mongo.db)

    def upload(self):
        try:
            if session['username']:
                file = self.request.files['file']
                if self.request.form.get('public'):
                    public = True
                else:
                    public = False
                filename = file.filename
                kwargs = {'username': session['username'], 'public': public}
                upload_id = self.mongo.save_file(filename, file, **kwargs)
                return str(upload_id)
            return 'Please log in.'
        except Exception as e:
            return 'There was a problem handling your request.\
            Error message: {}'.format(str(e))

    def get_public_files(self):
        data = {}
        try:
            if session['username']:
                public_files = self.mongo.db.fs.files.find({'public': True})
                for file in public_files:

                    data[file['filename']] = {
                        'filename': file['filename'],
                        'username': file['username'],
                        'contentType': file['contentType'],
                        'md5': file['md5'],
                        'chunkSize': file['chunkSize'],
                        'length': file['length'],
                        'uploadDate': file['uploadDate']
                    }

                return jsonify(data)
            return 'Please log in.'
        except Exception as e:
            return 'There was a problem handling your request.\
            Error message: {}'.format(str(e))

    def get_stream(self):
        try:
            if session['username']:
                if self.request.method == 'POST':
                    session['filename'] = self.request.form['filename']
                    grid_out = self.fs.open_download_stream_by_name(
                        session['filename'])
                    contents = grid_out.read()
                    return Response(contents, mimetype='video/mp4')
                else:
                    grid_out = self.fs.open_download_stream_by_name(
                        session['filename'])
                    contents = grid_out.read()
                    return Response(contents, mimetype='video/mp4')

            return 'Please log in.'
        except Exception as e:
            return 'There was an error handling your request.\
            Error message: {}'.format(str(e))
Ejemplo n.º 6
0
import pymongo
from pymongo import MongoClient
import gridfs
import numpy as np
import matplotlib.pyplot as plt
from gridfs import GridFSBucket

client = MongoClient(
    "mongodb+srv://nicolasservot:[email protected]/test?retryWrites=true&w=majority"
)
db = client['test']

#upload = gridfs.GridFS(db,collection='uploads')
uploads = GridFSBucket(db, bucket_name='uploads')
fileName = "49efa22b204232ad9c1c338d44d04ac5.jpg"

output = uploads.open_download_stream_by_name(fileName)
content = output.read()
print(content)

#txt = open('data','wb')
#uploads.download_to_stream_by_name(fileName, txt)
#txt.close

#file = upload.find_one({"filename":fileName})

#Count the number of document in uploads_chunks
#number_docs = upload.count_documents({})
#print(number_docs)
Ejemplo n.º 7
0
from gridfs import GridFSBucket
from kafka import KafkaConsumer, KafkaProducer

mongo_client = MongoClient(
    'mongodb://*****:*****@35.242.180.246:27017')

consumer = KafkaConsumer('mongo-in',
                         bootstrap_servers=['35.246.41.186:9092'],
                         value_deserializer=lambda value: json.loads(value))


def get_producer():
    producer = KafkaProducer(bootstrap_servers=['35.246.41.186:9092'])
    # value_serializer=lambda value: json.dumps(value).encode())
    return producer


for msg in consumer:
    print(msg.value)
    video_title = msg.value
    videos_db = mongo_client.get_database('videos')
    fs = GridFSBucket(videos_db)
    grid_out = fs.open_download_stream_by_name(video_title)
    contents = grid_out.read()
    topic = 'mongo-out'
    producer = get_producer()
    print('sending to flask via producer')
    producer.send(topic, value=contents)
    logging.basicConfig(level=logging.INFO)
    print('sent')