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')
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')
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
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))
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)
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')