2012-03-21 20 views
0

ファイルリストをDropboxにアップロードしようとしていますが、さまざまな種類のエラーが発生します。私はこれを試して、ネット上のすべてを試しました。しかし、私はまだそれを働かせることはできません。Dropboxアップロードファイルpythonエラー

# Include the Dropbox SDK libraries 
from dropbox import rest, session 
import webbrowser 
import os 
import glob 
import zipfile 
import datetime 
from dropbox import client 

# Get your app key and secret from the Dropbox developer website 

# (app keys defined here) 

# ACCESS_TYPE should be 'dropbox' or 'app_folder' as configured for your app 
ACCESS_TYPE = 'app_folder' 
sess = session.DropboxSession(APP_KEY, APP_SECRET, ACCESS_TYPE) 

request_token = sess.obtain_request_token() 

url = sess.build_authorize_url(request_token) 

file_list = [] 

#get the date 
now = datetime.datetime.now() 

def initialize(): 

    #print "url:", url 
    # open a public URL, in this case, the webbrowser docs 
    #url = "http://docs.python.org/library/webbrowser.html" 
    webbrowser.open(url) 
    print "Please click the 'Allow' button to Authorize..." 
    print """ 
    Please select by entering the specific number... 
    1 Backup all my files by one by one 
    2 Backup specific folder 
    3 Backup specific file 
    4 Get my account details 
    5 About this software 
    6 Exit 
    """ 
    try: 
     # This will fail if the user didn't visit the above URL and hit 'Allow' 
     access_token = sess.obtain_access_token(request_token) 
    except: 
     print "Error has occured" 

def getAccountInfo(): 
    from dropbox import client 
    client = client.DropboxClient(sess) 
    account_info_dict = client.account_info() 
    print "linked account:" 

    for item in account_info_dict: 
     if type(account_info_dict[item]) == dict: 
      inner_dict = account_info_dict[item] 
      for item1 in inner_dict: 
       print item1, ":", inner_dict[item1] 
     print item, ":", account_info_dict[item] 

def getAllFiles(): 
    for dirname, dirnames, filenames in os.walk('I:/'): 
     for subdirname in dirnames: 
      print os.path.join(dirname, subdirname) 
     for filename in filenames: 
      file_name = os.path.join(dirname, filename) 
      print file_name 
      file_list.append(file_name) 
    return file_list 

def upload_one_by_one(sess): 
    from dropbox import client 
    files = getAllFiles() 
    client = client.DropboxClient(sess) 
    #zip_file_name = now.strftime("%Y%m%d%H%M")+ ".zip"  
    #z = zipfile.ZipFile(zip_file_name, "w") 
    for file_item in files: 
     #z.write(file_item) 
     #f = open(zip_file_name) 
     response = client.put_file("test/", file_item) 
     print "uploaded:", response 
     break 


initialize() 
#getAccountInfo() 
upload_one_by_one(sess) 

client.put_file()引数の問題。私はテストのフォルダに画像ファイルをアップロードしようとしています。しかし、それはその中の画像ファイルへのパスを持つテキストファイルとしてアップロードされます。

Dropbox sdkを使用して画像ファイルをDropboxにアップロードできませんか?

+2

あなたのdevのキーが削除されていますが、Googleがインデックスしていなかったという保証はありません。新しいものを手に入れよう。 – Will

+1

エラーは何ですか? –

答えて

1

put_file()は、ファイルのようなオブジェクトか、ファイルの内容を表す文字列のいずれかをとります。ファイル名を渡すと、自動的にファイルの内容は読み込まれません。

+0

さて、あなたはそのようにする方法を知っていますか?もしあなたが知っていれば、ここに投稿してください。コミットメントありがとう! – Isuru

+0

http://docs.python.org/tutorial/inputoutput.html#reading-and-writing-files –

2

あなたがアップロードするファイルを開けませんでした、これが動作しているようです:

for file_item in files: 
    file = open(file_item) 
    response = client.put_file("test/", file) 
関連する問題