Python Boto S3Connection通过代理

时间:2013-09-19 01:36:22

标签: python proxy amazon-s3 boto password-encryption

我正在构建一个Web应用程序,它将自动从亚马逊的S3云中下载一些数据,解压缩并将解压缩的数据加载到PostGRE SQL数据库中。

我已经开发并运行了所有脚本。但是,我想创建一个前端,用户可以在其中放置代理服务器的用户名和密码。这是必要的,因为用户需要每月更改一次。

我正在使用boto连接到S3。到目前为止,由于我自己从命令行执行脚本,所以我只是输入密码。我想改变它并使用jQuery将用户名和加密密码传递给Python脚本,然后执行上述所有操作。我想避免通过Web浏览器地址行中的参数列表发送此信息。

我知道如何进行散列(我认为)。但是,当我尝试将哈希密码传递给boto时,我收到错误407 (Proxy Authentication Required)

有人知道解决方法吗?只要我能通过加密密码,我很乐意使用Boto以外的模块。除非我可以在脚本中“取消”密码,然后将其传递给Boto.S3Connection。

这是我用来连接S3的脚本。

import boto 
import sys, os
from boto.s3.key import Key
import boto.s3.connection as s3
import argparse

AWS_ACCESS_KEY_ID = 'XXXXXXXXXXXXXXXXXXXXXXX'
AWS_SECRET_ACCESS_KEY = 'YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY'

parser = argparse.ArgumentParser(description='Do something')
parser.add_argument('user', metavar='user', nargs='+', help='user login to access proxy')
parser.add_argument('passwd', metavar='passwd', nargs='+', help='user password')

args = parser.parse_args()
bucket_name = 'xxxx.xxx.xxx'

# connect to the bucket
conn = s3.S3Connection(AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY, 
      proxy='999.999.99.99',
      proxy_port='8080', 
      proxy_user=args.user[0], 
      proxy_pass=args.passwd[0])

# do whatever is necessary below ...

提前感谢您的帮助!

0 个答案:

没有答案