1

GoogleAppEngineからリモートサイトにファイルをPOSTする必要があるいくつかの異なるアプリケーションがあります。urllib2でいくつかのアプローチを試しましたが、コードをGAEに移動したため、各アプローチで問題が発生しました。

Google App EngineからリモートWebサイトにファイル(csv、zipなど)を投稿する最も簡単な方法は何ですか?既存のファイルを投稿できるようになったら、データストアからのファイルの投稿に進むことができます。

4

2 に答える 2

2

をご覧になりましたかurlfetchdocsの例。

import urllib

from google.appengine.api import urlfetch

with open('/file', 'r') as f:
    data = f.read()

result = urlfetch.fetch(url=url,
                        payload=data,
                        method=urlfetch.POST,
                        headers={'Content-Type': 'application/x-www-form-urlencoded'})
于 2012-09-24T05:30:41.873 に答える
0

参照から、

payloadPOST:またはPUTリクエストの本文コンテンツ。

したがって、ファイルのコンテンツをロードしてペイロードを設定するだけです

with open(filename, 'r') as fh:
  payload = fh.read()
response = urlfetch.fetch(url, payload=payload, method='POST')

そして、あなたがしたいことをしてくださいresponse

これは、データストア オブジェクトの文字列とまったく同じ方法で機能します。

EDIT:filenameプロジェクトへの相対パスになる可能性があります。したがって、プロジェクトが/home/dinosaurs/sinclairローカル マシン上にあり/home/dinosaurs/sinclair/stuff/contents.xml、プロジェクト内にある場合、App Engine の本番環境で動作する相対パスはstuff/contents.xml.

于 2012-09-24T22:19:18.367 に答える