2014-09-28 160 views
7

我試圖建立一個基本的基於python的谷歌應用程序引擎網站,允許用戶將文件上傳到谷歌雲存儲(以圖片爲主)文件上傳到谷歌雲存儲谷歌的App Engine(Python)的

我一直在瀏覽JSON API和GCS客戶端庫概述(以及blobstore等)的文檔,並且仍然沒有很好的處理方法,哪些是最好的方法以及它們是如何相關的。如果有人能夠給出一個這方面的概述,或者指向我可以查看的一些資源,那將會很棒。

此外,任何相關的示例代碼都會非常有用。我已經能夠在這裏運行上傳示例,但不知道它們是否適用於應用引擎設置:https://github.com/GoogleCloudPlatform/storage-file-transfer-json-python

謝謝!

+1

我也無法弄清楚這一點。我不確定Google的文檔是否應該受到指責,但是很難構建這樣的解決方案。我最終使用了Datastore的Image API。 – Tjorriemorrie 2014-09-28 17:52:24

+1

2016年,它仍然不是ckear – sqram 2016-06-03 06:42:49

回答

8

Google Cloud Storage有兩個API - XML APIJSON API。 XML API基於XML,非常類似於Amazon S3 API。 JSON API與許多其他Google API類似,可與標準Google API客戶端庫(例如,Google API Python library)一起使用。這兩種API都可以在任何地方使用,可以使用或不使用App Engine,並且基於RESTful HTTP調用。

App Engine提供了幾種訪問Google雲端存儲的標準方式。第一個內置於App Engine的API中,稱爲"Google Cloud Storage Python API"。這不會直接使用XML或JSON API。它已被棄用,不再推薦。

第二個App Engine庫被稱爲"Google Cloud Storage Python Client Library",它不是核心App Engine API的一部分。相反,它是Google推出的一個Python庫,您可以像任何其他庫一樣下載並添加到您的應用程序中。這個庫恰好使用XML API來實現。它提供了一些對App Engine用戶非常有用的額外功能,例如在正在進行時序列化上傳的功能。在python/demo目錄下有一個使用這個庫作爲下載的一部分的例子。您可以also see it online

這些工具的等價物也存在於Java和Go中。

用戶不需要使用特定於App Engine的庫,除非他們發現它們很有用。標準的Python庫或甚至只是使用urlfetch手寫的HTTP調用也可以。 App Engine庫僅爲App Engine用戶提供了一些有用的額外功能。

App Engine也有一個「Blobstore Python API」。這是App Engine特有的功能,與Google雲端存儲不同,只是它提供了一些Google雲端存儲掛鉤,例如可以使用Blobstore API將文件存儲在Google Cloud Storage中。

+0

布蘭登,只是爲了澄清,如果我有一個App Engine應用程序,並且我希望用戶上傳到Google Cloud Storage,我使用Blobstore Python API? – Michael 2015-06-05 06:42:54

+0

你當然可以,是的。 – 2015-06-05 17:35:55