def post(self, instance_id): if not self.is_exist(instance_id): abort(404) if not self.is_allowed(instance_id): abort(403) uploaded_file = request.files["file"] folder_path = thumbnail_utils.get_preview_folder_name( "originals", instance_id ) extension = uploaded_file.filename[-4:] if extension in [".png", ".jpg"]: thumbnail_utils.save_file( folder_path, instance_id, uploaded_file, size=None ) if extension == ".jpg": thumbnail_utils.convert_jpg_to_png( folder_path, instance_id ) thumbnail_utils.generate_preview_variants(instance_id) self.emit_app_preview_event(instance_id) return thumbnail_utils.get_preview_url_path(instance_id), 201 elif extension in [".mp4", ".mov"]: from moviepy.editor import VideoFileClip file_name = "%s%s" % (instance_id, extension) folder = thumbnail_utils.create_folder(folder_path) file_path = os.path.join(folder, file_name) picture_path = os.path.join(folder, "%s.png" % instance_id) uploaded_file.save(file_path + '.tmp') clip = VideoFileClip(file_path + '.tmp') clip = clip.resize(height=720) clip.save_frame(picture_path, round(clip.duration / 2)) thumbnail_utils.generate_preview_variants(instance_id) file_name = "%s%s" % (instance_id, extension) clip.write_videofile(os.path.join(folder, instance_id + ".mp4")) self.emit_app_preview_event(instance_id) return {}, 201 else: abort(400, "Wrong file format")
def post(self, instance_id): if not self.is_exist(instance_id): abort(404) self.check_permissions(instance_id) self.prepare_creation(instance_id) tmp_folder = current_app.config["TMP_DIR"] uploaded_file = request.files["file"] thumbnail_path = thumbnail_utils.save_file( tmp_folder, instance_id, uploaded_file ) thumbnail_path = thumbnail_utils.turn_into_thumbnail( thumbnail_path, size=self.size ) file_store.add_picture("thumbnails", instance_id, thumbnail_path) os.remove(thumbnail_path) self.clear_cache_file(instance_id) thumbnail_url_path = thumbnail_utils.url_path( self.data_type, instance_id ) self.emit_event(instance_id) return {"thumbnail_path": thumbnail_url_path}, 201
def save_picture_preview(self, instance_id, uploaded_file): """ Get uploaded picture, build thumbnails then save everything in the file storage. """ tmp_folder = current_app.config["TMP_DIR"] original_tmp_path = thumbnail_utils.save_file(tmp_folder, instance_id, uploaded_file) return self.save_variants(original_tmp_path, instance_id)
def post(self, instance_id): if not self.is_exist(instance_id): abort(404) self.check_permissions(instance_id) self.prepare_creation(instance_id) uploaded_file = request.files["file"] thumbnail_utils.save_file(self.data_type, instance_id, uploaded_file, size=self.size) thumbnail_url_path = \ thumbnail_utils.url_path( self.data_type, instance_id ) return {"thumbnail_path": thumbnail_url_path}, 201
def test_save_file(self): file_path_fixture = self.get_fixture_file_path("thumbnails/th01.png") th_file = FileStorage(stream=open(file_path_fixture, "rb"), filename="th01.png") full_path = thumbnail.save_file("shots", "instance-id", th_file) thumbnail.turn_into_thumbnail(full_path, thumbnail.RECTANGLE_SIZE) im = Image.open(full_path) (width, height) = im.size self.assertEqual(width, 150) self.assertEqual(height, 100)
def post(self, instance_id): if not self.is_exist(instance_id): abort(404) uploaded_file = request.files["file"] thumbnail_utils.save_file( self.data_type, instance_id, uploaded_file, size=self.size ) thumbnail_url_path = \ thumbnail_utils.url_path( self.data_type, instance_id ) result = {"thumbnail_path": thumbnail_url_path} return result, 201
def save_picture_preview(self, instance_id, uploaded_file): """ Get uploaded picture, build thumbnails then save everything in the file storage. """ tmp_folder = current_app.config["TMP_DIR"] original_tmp_path = thumbnail_utils.save_file(tmp_folder, instance_id, uploaded_file) file_size = fs.get_file_size(original_tmp_path) preview_files_service.update_preview_file(instance_id, {"file_size": file_size}, silent=True) return preview_files_service.save_variants(instance_id, original_tmp_path)