2015-12-17 105 views
0

的Python的Boto S3Connection問題嘗試下面的代碼連接到AWS S3和使用代理,並收到以下錯誤推一個文件,通過代理

代碼:

local_proxy =「http://172.18.96.36 local_proxy_port = 8080 aws_connection = S3Connection(aws_access_key_id = AWS_KEY,aws_secret_access_key = AWS_SECRET,is_secure =真,security_token = AWS_TOKEN,代理= 「172.18.96.36」,proxy_port使用= 「8080」,proxy_user =無,proxy_pass =無)

mybucket = aws_connection。得到_bucket(BUCKET_NAME,驗證=假)

K = boto.s3.key.Key(mybucket) k.set_contents_from_filename(SOURCE_FILE,encrypt_key =真)

錯誤:所需要的字節狀物體,而不是' STR」

當我改變代理‘http://172.18.96.36’,我得到以下錯誤,

errno的-2名稱或服務不知道

注:代理服務器工作正常,當我嘗試它直通AWS CLI 。那裏沒有問題。另外,boto腳本在防火牆外工作良好。想要查看S3Connection呼叫或其他任何地方的錯誤。

謝謝

回答

0

看看這個。 https://github.com/lcerezo/scriptz/blob/master/SAtools/pushfiles_toS3.py

你想要的是沿thses線成才:

conn = boto.connect_s3(proxy='172.18.96.36',proxy_port='3128',debug=1)

上述作品我魷魚。更改端口。我不認爲你需要該字符串中的http://

+0

Thx lcerezo。端口3128掛起而沒有回來。順便說一下,Port 8080可以通過AWS CLI正常工作。任何想法爲什麼我得到錯誤「字節狀對象是必需的,而不是'str'」?這將有所幫助。 –

+0

另外,我正在使用python 3.5與常規boto模塊。這會成爲一個問題嗎? Shd我使用Python 2.7? –

+0

我認爲ip不應該以http://作爲前綴,它可能會將其解釋爲str()。 或者你可以設置bash env var'http_proxy'和'https_proxy'到ip:port例如'export http_proxy = 172.18.96.36:8080' – lcerezo