【发布时间】:2015-10-22 10:29:11
【问题描述】:
首先让我说,
我想我已经阅读了所有与此主题相关的堆栈交换帖子。*
我想做的事:
- 我正在尝试允许某些用户通过我网站上的表单将图像发送到谷歌云存储..
- 另一个要求除了将该图像发送到云存储之外,我还需要在数据存储中创建该图像的模型及其相关属性。
我不确定最好的解决方法是什么,因为..
我读过的方法:
有很多方法可以将图像存储到云存储中:
- 通过 blobstore api
- 通过python客户端进行云存储:https://cloud.google.com/appengine/docs/python/googlecloudstorageclient/#Python_About_the_client_library
- 通过rest api(我正在考虑使用json方法)https://cloud.google.com/storage/docs/json_api/v1/how-tos/upload#simple
我已经阅读了很多相互矛盾的信息,
我读了这么多,我无法直截了当,
然而,
我认为解决方案是:
对于 blobstore:
- blobstore.uploadtocloudstoragething 方法可能有也可能没有文件上传限制大小(不,这不是实际的调用或方法名称) 2. blobstore 方法听起来像是要被淘汰了??
对于 Jason API:
“但是,客户端库包含 App Engine 优化,因此使用 REST API 可能需要额外的开发时间。注意:App Engine 开发服务器支持 Cloud Storage 客户端。它不支持'不支持 REST API。"
对于客户端库:
我不知道。到目前为止看起来还不错。这是我正在考虑使用的方法:
"cloudstorage.open(filename, mode='r', content_type=None, 选项=无, read_buffer_size=storage_api.ReadBuffer.DEFAULT_BUFFER_SIZE, retry_params=无)
在读取模式下 (r) 打开指定的云存储 读取对象。在写模式 w 下,如果指定的文件存在,则 打开它进行覆盖(不支持追加)。如果文件 不存在,在指定的bucket中创建。”
我正在使用的东西:
- 谷歌应用引擎
- Python(用于处理程序、模型等)
- angularjs 和 jquery(前端)
- json 有时(后端)
- GAE 样板(不要问)
我想我会做什么:
- 获取用户图片:
所以,我找到了我测试过的这个表格。它确实从您的计算机中获取文件:
<form action="<?php echo $upload_url?>" enctype="multipart/form-data"
method="post">
Files to upload: <br> <input type="file" name="uploaded_files" size="40"> <input type="submit" value="Send">
(不,我不能在操作中使用 php 垃圾。我从文档中的某个地方获取它,但我对其进行了测试,它确实抓取了一个文件,不,它不会发送,它期望它会是愚蠢的)
- 修改我当前的处理程序(负责在数据存储中创建图像模型)以也使用
这个方法:
"cloudstorage.open(filename, mode='r', content_type=None, 选项=无, read_buffer_size=storage_api.ReadBuffer.DEFAULT_BUFFER_SIZE, retry_params=无)
在读取模式下 (r) 打开指定的云存储 读取对象。在写模式 w 下,如果指定的文件存在,则 打开它进行覆盖(不支持追加)。如果文件 不存在,在指定的bucket中创建。”
我目前遇到的问题
我不知道那个表单是如何工作的,我不知道如何从这个表单获取正确的信息给处理程序,以及处理程序需要什么信息,所以我可以处理它,创建模型(我已经知道如何在数据存储中创建模型,已经这样做了),并使用此方法将图像发送到谷歌云存储:
"cloudstorage.open(filename, mode='r', content_type=None, 选项=无, read_buffer_size=storage_api.ReadBuffer.DEFAULT_BUFFER_SIZE, retry_params=无)
在读取模式下 (r) 打开指定的云存储 读取对象。在写模式 w 下,如果指定的文件存在,则 打开它进行覆盖(不支持追加)。如果文件 不存在,在指定的bucket中创建。”
谁能给我一个例子?我找不到任何关于在表单中放入什么内容的好的相关帖子或文档,这样它将抓取文件,抓取用户填写的其他表单数据,然后最终将图像发送到谷歌云存储。
--更新--:
所以,在发布此消息后,我立即在 gcs.open 上进行了谷歌搜索,结果导致了此帖子:
how to upload image to the cloud storage via app engine?
我相信这可以解决后端问题,我确实还有一个问题。
重新粘贴问题:
问题:
-
我不知道图片名称是什么,我想使用现有的,或者随机的。有什么建议吗?
-
我在哪里粘贴这个:enctype="multipart/form-data"?
-
2 号会不会弄乱我的其他表单数据?我需要更多信息,而不仅仅是发布请求中的这张图片
【问题讨论】:
标签: python image google-app-engine upload google-cloud-storage