2012-04-19 17 views
1

この問題は、もう1つの問題の詳細な説明です。pythonスクリプトを使用してDropboxにファイルをアップロードしない

私はgithub上にコードを置いています。かなり正当なビットだからです。ご迷惑をおかけして申し訳ありません。 https://github.com/lonehangman/mccdropdav/blob/master/views.py

Line 100以降は問題が発生する場所です。先週、Google App Engine(GAE)に設定されたwebdavを介して、ページ(iPad上)からDropboxにファイルをアップロードしようとしましたが、失敗しました。

私は自分のDropboxの内容を見ることができますが、コンピュータまたはiPadからダウンロードまたはアップロードすると、常にエラーが発生します。私はログをチェックして、110行目に重要なエラーがあることを知ったので、私はmeta_entryを印刷してこれを修正しようとしました。
(したがって、# make a fake Resource to ease our exporting。オンライン106)。 この問題は私を数日間悩ませてしまったが、私の友人は私に152行を削除するように言った。root.append(self.export_meta_entry(metadata,href=self.request.path)) # first response's href contains exactly what you asked for (relative path)
これでキーエラーは解消されたが、依然としてdropboxにアップロードすることはできなかった。 iPadはアップロードしていると伝えますが、私は自分のDropboxをチェックしますが、新しいファイルは見られません。また、ファイルをダウンロードすることもできません。 ログは取得されていないようです。

誰もが(あなたが「どこかに行く」または「のpythonのnoobを学ぶ」のようなものを書く気にしないでください支援するつもりはない場合。)説明し、支援をしてみてくださいすることができ

を任意のより多くの情報がある場合必要なものだけを尋ねる 私はこれを書いている時にはかなり疲れているので、ちょっと急いでいるようです。

+0

場合によっては、問題を示すための最小限の例を作成することで、自分で解決することができます。 – FabienAndre

答えて

0

はあなたの全体のアプリを探していますが、put_file

f = open('working-draft.txt') 
response = client.put_file('/magnum-opus.txt', f) 
print "uploaded:", response 

などput_file documentation PUT_FILEの最初の引数があると言うのだけあなた(のDropbox put_fileを呼び出す)put方法

def put(self): 
     path = '/' + self.request_path 
     self.client.put_file(ROOT, os.path.dirname(path), self.request.body_file, file_name=os.path.basename(path)) 
     self.response.set_status(201,'Created') 

Dropbox API tutorial例ではありません(ファイル名を含む)ドロップボックスツリー内のファイルの完全なパスであり、第2引数はファイルのようなオブジェクトです。

だから、そのようなことは、あなたが見ることができるように、あなたはput_file呼び出しで何が起こったのかについて、さらに情報を得るためにput_fileの戻り値を見てもよい

self.client.put_file(path, self.request.body_file) 

方が良いかもしれません。 Dropboxの回答に応じてレスポンスコードを調整することができます。

+0

それは私に 'put_file()が少なくとも4つのargumets(与えられた)'を取るエラーを与えます。 どうすればいいですか? – bidluo

+0

申し訳ありませんが、Dropboxの 'put_file'メソッドを呼び出しているところを想像しました。ここではwepapp 'put_file'があり、あなたは決してdropboxにそのようなことを尋ねることはないようです。小規模な作業用ローカルアプリケーションから始め、あなたの課題(webapp、auth ...)を一度に一度解決することで、プログラムへの段階的なアプローチを得ることをお勧めします。 http://meta.stackexchange.com/a/128554/でいくつかのポインタを読んだり、次回より正確な質問をすることができます。 – FabienAndre

関連する問題