古いboto
ライブラリでは、proxy
、proxy_port
、proxy_user
およびproxy_pass
接続を開くときのパラメーター。ただし、boto3でプロキシパラメーターをプログラムで定義する同等の方法は見つかりませんでした。 :(
少なくともバージョン1.5.79以降、botocoreはbotocore configでproxies
引数を受け入れます。
例えば.
import boto3
from botocore.config import Config
boto3.resource('s3', config=Config(proxies={'https': 'foo.bar:3128'}))
boto3 resourcehttps://boto3.readthedocs.io/en/latest/reference/core/session.html#boto3.session。 Session.resource
botocore confighttps://botocore.readthedocs.io/en/stable/reference/config.html#botocore.config.Config
ユーザープロキシサーバーにパスワードが設定されていない場合は、次のように試してください
import os
os.environ["HTTP_PROXY"] = "http://proxy.com:port"
os.environ["HTTPS_PROXY"] = "https://proxy.com:port"
ユーザーのプロキシサーバーにパスワードがある場合は、次のように試してください
import os
os.environ["HTTP_PROXY"] = "http://user:[email protected]:port"
os.environ["HTTPS_PROXY"] = "https://user:[email protected]:port"
環境変数の変更とは別に、コードで見つけたものを紹介します。
Boto3はbotocoreを使用しているため、ソースコードを確認しました。
このリンクから、次のようになります。
_ 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)
_
... EndpointCreator
クラスのproxies = self._get_proxies(final_endpoint_url)
によって呼び出されます。
要するに、python2を使用している場合はurllib2のgetproxies
メソッドを使用し、python3を使用している場合はurllib3を使用します。
_get_environ_proxies
_は_{'http:' 'url'}
_を含むdictを期待しています(そしてhttps
も推測しています)。
コードは常にpatch
できますが、それは悪い習慣です。