26

古いライブラリでは、接続を開くときに、、およびパラメータbotoを使用するのに十分単純でした。ただし、boto3 でプロキシ パラメータをプログラムで定義する同等の方法を見つけることができませんでした。:(proxyproxy_portproxy_userproxy_pass

4

4 に答える 4

31

少なくともバージョン 1.5.79 では、botocore は botocore 構成でproxies引数を受け入れます。

例えば

import boto3
from botocore.config import Config

boto3.resource('s3', config=Config(proxies={'https': 'foo.bar:3128'}))

boto3 リソース https://boto3.readthedocs.io/en/latest/reference/core/session.html#boto3.session.Session.resource

botocore 設定 https://botocore.readthedocs.io/en/stable/reference/config.html#botocore.config.Config

于 2017-08-03T18:39:28.820 に答える
3

環境変数の変更とは別に、コードで見つけたものを提示します。

boto3 は botocore を使用しているため、ソース コードを確認しました。

https://github.com/boto/botocore/blob/66008c874ebfa9ee7530d944d274480347ac3432/botocore/endpoint.py#L265

このリンクから、最終的には次のようになります。

    def _get_proxies(self, url):
        # We could also support getting proxies from a config file,
        # but for now proxy support is taken from the environment.
        return get_environ_proxies(url)

...クラスで呼び出されproxies = self._get_proxies(final_endpoint_url)ますEndpointCreator

簡単に言うと、python2 を使用している場合は urllib2 のメソッドが使用され、python3 を使用getproxiesしている場合は urllib3 が使用されます。

get_environ_proxies含む辞書を期待しています{'http:' 'url'}(そして私も推測しhttpsています)。

いつpatchでもコードを使用できますが、それはお粗末な方法です。

于 2015-11-03T14:34:35.950 に答える
1

これは、少なくとも Boto 開発者が接続固有のプロキシ設定を許可するまで、モンキー パッチをお勧めするまれなケースの 1 つです。

import botocore.endpoint
def _get_proxies(self, url):
    return {'http': 'http://someproxy:1234/', 'https': 'https://someproxy:1234/'}
botocore.endpoint.EndpointCreator._get_proxies = _get_proxies
import boto3
于 2016-03-24T20:21:19.143 に答える