From b3b9c68486dd4896b4d8279a7bef9a34a1456880 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= Date: Tue, 8 Nov 2016 18:26:05 +0100 Subject: [PATCH] Fixed uploading of images. Thumbnailing is still broken, though. --- pillar/api/file_storage/__init__.py | 2 +- pillar/api/utils/storage.py | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/pillar/api/file_storage/__init__.py b/pillar/api/file_storage/__init__.py index d1f4a48d..636cd8ef 100644 --- a/pillar/api/file_storage/__init__.py +++ b/pillar/api/file_storage/__init__.py @@ -712,7 +712,7 @@ def stream_to_storage(project_id): elif current_app.config['STORAGE_BACKEND'] == 'local': storage_backend = PillarStorage(project_id) file_in_storage = PillarStorageFile(project_id, internal_fname) - file_in_storage.create_from_file(uploaded_file, file_size) + file_in_storage.create_from_file(stream_for_gcs, file_size) log.debug('Marking uploaded file id=%s, fname=%s, ' 'size=%i as "queued_for_processing"', diff --git a/pillar/api/utils/storage.py b/pillar/api/utils/storage.py index f6c86644..4bef8979 100644 --- a/pillar/api/utils/storage.py +++ b/pillar/api/utils/storage.py @@ -2,6 +2,8 @@ import logging import os +import shutil + from flask import current_app log = logging.getLogger(__name__) @@ -50,7 +52,9 @@ class PillarStorageFile(FileInStorage): def create_from_file(self, uploaded_file, file_size): # Ensure path exists before saving - os.makedirs(os.path.basename(self.path)) - uploaded_file.save(self.path) - self.size = file_size + os.makedirs(os.path.dirname(self.path)) + with open(self.path, 'wb') as outfile: + shutil.copyfileobj(uploaded_file, outfile) + + self.size = file_size