我正在开发一个Django Web应用程序,它可以接收PDF文件并对PDF的每个页面执行一些图像处理。我得到了一个PDF,我需要将每个页面保存到我的Google Cloud Storage中。我正在使用pdf2image
的convert_from_path()
为PDF中的每个页面生成一个Pillow图像列表。现在,我想将这些图像保存到Google Cloud Storages,但我无法解决这个问题。
我已经成功地将这些枕头图像保存在本地,但我不知道如何在云中执行此操作。
fullURL = file.pdf.url
client = storage.Client()
bucket = client.get_bucket('name-of-my-bucket')
blob = bucket.blob(file.pdf.name[:-4] + '/')
blob.upload_from_string('', content_type='application/x-www-form-urlencoded;charset=UTF-8')
pages = convert_from_path(fullURL, 400)
for i,page in enumerate(pages):
blob = bucket.blob(file.pdf.name[:-4] + '/' + str(i) + '.jpg')
blob.upload_from_string('', content_type='image/jpeg')
outfile = file.pdf.name[:-4] + '/' + str(i) + '.jpg'
page.save(outfile)
of = open(outfile, 'rb')
blob.upload_from_file(of)
3条答案
按热度按时间kqhtkvqz1#
所以从不使用blobstore开始。他们正试图摆脱它,让人们使用云存储。首先设置云存储
https://cloud.google.com/appengine/docs/standard/python/googlecloudstorageclient/setting-up-cloud-storage
我使用webapp2而不是Django,但我相信你可以解决这个问题。我也不使用Pillow图像,所以你必须打开你要上传的图像。然后做一些类似的事情(假设你试图发布数据):
before get和post在它自己的节中
在获取HTML时
发布中
yjghlzjz2#
由于您已将文件保存在本地,因此它们在运行Web应用程序的本地目录中可用。
你可以做的只是遍历该目录的文件,并将它们一个接一个地上传到Google Cloud Storage。
示例代码如下:
你需要这个库:
谷歌云存储
Python代码:
注意:我已经测试了谷歌应用引擎Web应用程序的代码,它为我工作。采取的想法是如何工作,并根据您的需要修改它。我希望这是有帮助的。
lf5gs5x23#
您不需要在本地保存图像,也可以将图像直接写入gcs bucket,如下所述: