簡體   English   中英

在Javascript中從GAE中的數據存儲訪問圖像

[英]Accessing images from the datastore in GAE within Javascript

我是GAE(Python)的新手,確實需要一些幫助來幫助我從數據存儲服務圖像並在客戶端Javascript中訪問圖像。

我一直在這里關注Google的教程: 使用Google App Engine(Python)提供動態圖片

假設我有數據對象來存儲一些圖像

class Default_tile(db.Model)
  name = db.StringProperty()
  image = db.BlobProperty(default=None)

將圖像添加到上述數據庫的正確代碼是嗎?:

default_tile = Default_tile()
default_tile.name = "grass"
default_tile.image = db.Blob(urlfetch.Fetch("http://www.bbc.com/grass.png").content)
default_tile.put() 

不可以說我在客戶端javascript上具有以下代碼:

  var image = new Image();

  image.onload = function() {
    context.drawImage(image, 69, 50);
  };
  imageObj.src = ***how to I get the image, named grass, from the Datastore***

所以我的問題是如何獲得圖像?

理想情況下,我只想使用imageObj.src = / images / grass

謝謝你的幫助。

數據存儲

您正確地遵循了示例,但是錯過了從同一URL 檢索和顯示圖像的部分。

基本上,您將需要一個處理程序,該處理程序將定位此圖像並提供服務。 在您的情況下,假設示例中的title是您的情況下的name 因此,您最終將獲得一個用於檢索圖像的URL,如下所示:

http://localhost:8080/image?name=grass

這將提供圖像,因此,如果要在客戶端中使用,可以將其用作

imageObj.src = '/image?name=grass'

Blobstore API

如果您打算存儲許多圖像並從用戶那里獲取它們,則應考慮改為使用Blobstore API 對於初學者來說,它有點復雜,但是要花一些時間,因為您可以將圖像(或其他任何東西)存儲在便宜得多的Google Cloud Storage上。

從這個例子 ,你將能夠存儲和提供的斑點,但你也可以存儲blob_info.key()使用該模型中的BlobKeyProperty代替, BlobProperty

有了它而不是純粹的數據存儲,您將可以利用get_serving_url()函數的優勢:

返回提供圖片的網址。

這種URL格式允許動態調整大小和裁剪,因此您不需要在服務器上存儲不同的圖像大小。 高度優化的無cookie基礎結構為圖像提供了低延遲。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM