ドロップボックスのアクセスキー/シークレットを読み取り、ファイルをダウンロードするクラスをPythonで作成しようとしています。キー/シークレット部分は問題なく動作していますが、おそらくグローバル変数とローカル変数の問題が原因で、クライアント オブジェクトの認識に問題があるようです。私の答えはどこにもありません。
ここに私のコードの一部があります:
from dropbox import client, rest, session
class GetFile(object):
def __init__(self, file1):
self.auth_user()
def auth_user(self):
APP_KEY = 'xxxxxxxxxxxxxx'
APP_SECRET = 'xxxxxxxxxxxxxx'
ACCESS_TYPE = 'dropbox'
TOKENS = 'dropbox_token.txt'
token_file = open(TOKENS)
token_key,token_secret = token_file.read().split('|')
token_file.close()
sess = session.DropboxSession(APP_KEY,APP_SECRET, ACCESS_TYPE)
sess.set_token(token_key,token_secret)
client = client.DropboxClient(sess)
base, ext = file1.split('.')
f, metadata = client.get_file_and_metadata(file1)
out = open('/%s_COPY.%s' %(base, ext), 'w')
out.write(f.read())
そして、ここにエラーがあります:
Traceback (most recent call last):
File "access_db.py", line 30, in <module>
start = GetFile(file_name)
File "access_db.py", line 6, in __init__
self.auth_user()
File "access_db.py", line 20, in auth_user
client = client.DropboxClient(sess)
UnboundLocalError: local variable 'client' referenced before assignment
私はPythonに慣れていないので、間違っている可能性のある他の明らかなことがあれば教えてください。