你可以暂时复制谷歌云图像文件在Python?



对于一个项目,我试图获得一个上传的图像文件,存储在一个桶中。我试图让Python暂时保存一个副本,只是为了在这个文件上执行一些任务(读取,解码并将解码的文件作为JSON返回)。在此之后,需要删除临时文件。

我正在使用Python 3.8,如果这有帮助的话。

如果你想要一些我尝试的片段,我很乐意提供:)

#编辑

到目前为止,我只是尝试从存储桶下载文件,这是有效的。但我似乎无法弄清楚如何暂时保存它只是解码(我有一个API,将解码图像,并从该文件获取数据)。这是下载

的代码
def download_file_from_bucket(blob_name, file_path, bucket_name):
try:
bucket = storage_client.get_bucket(bucket_name)
blob = bucket.blob(blob_name)
with open(file_path, 'wb') as f:
storage_client.download_blob_to_file(blob, f)
except Exception as e:
print(e)
return False

bucket_name = 'white-cards-with-qr'
download_file_from_bucket('My first Blob Image', os.path.join(os.getcwd(), 'file2.jpg'), bucket_name)

对于云环境中的对象存储,你可以签署你的对象,让那些没有该对象帐户的人访问,你可以阅读谷歌云

您可以使用tempfile库。这是一个非常基本的片段。你也可以给文件命名,或者写完后再读。

import tempfile

temp = tempfile.TemporaryFile()

try:
temp.write(blob)
finally:
temp.close()

最新更新