谷歌云Web应用使用用户上传的文件进行处理。

问题描述 投票:0回答:1

我最近把我的项目从heroku移到了google cloud。 它是用flask写的,基本上是对上传的.docx文件做一些文本摘要(没什么花哨的)。由于他们的短暂文件系统,我能够在本地使用heroku上的文件。

有了google cloud,发现自己在尝试使用上传的文件和运行python函数时迷失了方向。

我得到的错误是:用open(self.file,'rb')作为文件。 FileNotFoundError: [Errno 2]没有这样的文件或目录:'。http:/storage.googleapis.com。...'

暂时把具体内容编辑出来,但当我在浏览器中打开链接时,会出现下载窗口。 我知道文件到了那里,因为我去google cloud,一切都在适当的 bucket里。

另外,有没有办法在python通过文件后立即从bucket中删除? 目前已经将生命周期设置为一天,但只是需要数据暂时跑过。

如果这些问题很傻,我很抱歉。 很新,正在努力学习。

谅谅

哦,这里是当前的代码

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}"

那么一个函数就应该打开这个文件。

flask google-cloud-platform web-applications docx file-processing
1个回答
1
投票

返回一个public_url的文件名,以便处理和使用。

   def open_file(self):
    url = self.file
    file = BytesIO(requests.get(url).content)
    return docx.Document(file)
© www.soinside.com 2019 - 2024. All rights reserved.