Google Cloud Webapp для использования загруженного пользователем файла для обработки - PullRequest
0 голосов
/ 28 мая 2020

Недавно я переместил свой проект с heroku в облако google. Он написан на flask и в основном представляет собой текстовое резюме (ничего особенного) загруженного файла .docx. Мне удалось локально использовать файлы на heroku из-за их эфемерной файловой системы.

В облаке Google я потерялся, пытаясь использовать загруженный файл и выполняя в нем функции python.

Я получаю следующее сообщение об ошибке: с open (self.file, 'rb') as file: FileNotFoundError: [Errno 2] Нет такого файла или каталога: 'http://storage.googleapis.com/ ... '

На данный момент детали отредактированы, но когда я открываю ссылку в браузере, открывается окно загрузки. Я знаю, что файл попадает туда, так как я go в облако Google, и все находится в надлежащем ведре.

Также есть способ удалить из корзины сразу после того, как python пройдется по документу? В настоящее время установлен дневной жизненный цикл, но требуется лишь временная передача данных.

Прошу прощения, если это глупые вопросы. Очень новичок в этом и пытаюсь научиться.

Спасибо

О, и вот текущий код

gcs = storage.Client()
user_file = request.files['file']
local = secure_filename(user_file.filename)
blob = bucket.blob(local)
blob.upload_from_string(user_file.read(),content_type=user_file.content_type)
this_file = f"http://storage.googleapis.com/{CLOUD_STORAGE_BUCKET}/{local}"

, тогда функция должна открывать this_file

1 Ответ

1 голос
/ 29 мая 2020

вернул public_url имени файла для обработки и использования

   def open_file(self):
    url = self.file
    file = BytesIO(requests.get(url).content)
    return docx.Document(file)
...