如何让 cloudant 选择一个 .pac 文件?
how to make cloudant pick a .pac file?
在我的 python (2.7) 应用程序中,我使用 Cloudant 数据库如下:
from cloudant.client import Cloudant
client = Cloudant('XXX', 'YYY', account='ZZZ')
client.connect()
my_db = client['my_database']
for doc in my_db: print doc
此应用程序运行的环境使用了无法绕过的proxy.pac。我怎样才能连接到 Cloudant .pac 感知或者我怎样才能让 Cloudant 自动查找 proxy.pac?
我找到了 python 包 PyPac (https://pypac.readthedocs.io/en/latest/),但完全不知道我应该如何在 Cloudant 上下文中使用它。
提前感谢您的想法和帮助。
从 PyPAC 0.6.0 开始,您可以使用 pac_context_for_url
上下文管理器:
from pypac import pac_context_for_url
with pac_context_for_url('https://acct.cloudant.com'):
# Do your Cloudant stuff
原回答:
这应该按预期工作:
import os
import pypac
# PyPAC will auto-discover the current PAC settings
pac = pypac.get_pac()
# Find the proxy for Cloudant (I use this domain but anything else would work too)
proxies = pac.find_proxy_for_url('https://acct.cloudant.com', 'cloudant.com')
# It will return something like: 'PROXY 4.5.6.7:8080; PROXY 7.8.9.10:8080'
# Here we take the 1st one:
proxy = 'http://{}/'.format(proxies.split()[1].rstrip(';'))
# Set proxy envars
os.environ['HTTP_PROXY'] = os.environ['HTTPS_PROXY'] = proxy
# And now try Cloudant stuff
在我的 python (2.7) 应用程序中,我使用 Cloudant 数据库如下:
from cloudant.client import Cloudant
client = Cloudant('XXX', 'YYY', account='ZZZ')
client.connect()
my_db = client['my_database']
for doc in my_db: print doc
此应用程序运行的环境使用了无法绕过的proxy.pac。我怎样才能连接到 Cloudant .pac 感知或者我怎样才能让 Cloudant 自动查找 proxy.pac?
我找到了 python 包 PyPac (https://pypac.readthedocs.io/en/latest/),但完全不知道我应该如何在 Cloudant 上下文中使用它。
提前感谢您的想法和帮助。
从 PyPAC 0.6.0 开始,您可以使用 pac_context_for_url
上下文管理器:
from pypac import pac_context_for_url
with pac_context_for_url('https://acct.cloudant.com'):
# Do your Cloudant stuff
原回答:
这应该按预期工作:
import os
import pypac
# PyPAC will auto-discover the current PAC settings
pac = pypac.get_pac()
# Find the proxy for Cloudant (I use this domain but anything else would work too)
proxies = pac.find_proxy_for_url('https://acct.cloudant.com', 'cloudant.com')
# It will return something like: 'PROXY 4.5.6.7:8080; PROXY 7.8.9.10:8080'
# Here we take the 1st one:
proxy = 'http://{}/'.format(proxies.split()[1].rstrip(';'))
# Set proxy envars
os.environ['HTTP_PROXY'] = os.environ['HTTPS_PROXY'] = proxy
# And now try Cloudant stuff