我正在编写一个谷歌应用引擎应用程序,用户将上传照片,然后我将不得不提供调整大小的照片。我花了很多时间研究什么是最好的解决方案,并决定gcs是要走的路。这是我上传的代码:
img_upload_url = blobstore.create_upload_url('/list', gs_bucket_name='myapp.appspot.com/'+user_name))
这很有效,我可以在开发人员的控制台中看到在user_name文件夹下上传的文件。
这是我的服务代码,但不起作用:
gs_key = blobstore.create_gs_key('/gs/myapp.appspot.com/' + user_name + "/" + str(upload_files[0].key()))
imgSrc = images.get_serving_url(gs_key, size=385)
我在get_serving_url中得到 ObjectNotFoundError 。这样做的方法是什么?
答案 0 :(得分:1)
键是一个对象。我想你想要upload_files[0].key.id()
答案 1 :(得分:1)
我正在使用java
,这就是我正在做的事情,
上传时,
bucketName = "mainBucket/subFolder/subFolder/subFolder";
objectName = "fileName";
gcsService.createOrReplace(new GcsFilename(bucketName, objectName), ....{other arguments} )
服务时,
gsBlobkey = createGsBlobKey("/gs/"+bucketName+"/"+objectName");
imageURl = serveFromBlobKey(gsBlobkey);
在开发服务器数据存储区中,将有一个名为__GsFileInfo__
的实体。因为会有一个名为fileName
的字段。确保您正在形成的网址和fileName
相同。
答案 2 :(得分:1)
我最近更新了this GIST,其中展示了如何使用GAE Python的GCS客户端库上传和提供文件。
在示例中,我使用默认存储桶来存储blob。默认存储桶具有免费配额。