Can't run script behind proxy
Hi, trying to run this simple script:
import sys
import os
import requests
from office365.runtime.auth.authentication_context import AuthenticationContext
from office365.sharepoint.client_context import ClientContext
from office365.runtime.auth.client_credential import ClientCredential
from office365.runtime.http.request_options import RequestOptions
baseurl = sys.argv[1]
basesite = sys.argv[2]
siteurl = baseurl + basesite
remotepath = sys.argv[3]
file_name = sys.argv[4]
file_content = sys.argv[5]
client_id_site = os.getenv('client_id')
client_secret_site = os.getenv('client_secret')
def set_proxy(request):
proxies = {siteurl:'http://xxx.xxx.90.15:443/' }
request.proxies = proxies
def disable_ssl(request):
request.verify = False # Disable certification verification
def sh_upload():
pasta,name = os.path.split(remotepath)
ctx_auth = AuthenticationContext(siteurl) # should also be the siteurl
ctx_auth.acquire_token_for_app(client_id_site, client_secret_site)
ctx = ClientContext(siteurl, ctx_auth) # make sure you auth to the siteurl.
ctx.pending_request().beforeExecute += set_proxy ##
ctx.pending_request().beforeExecute += disable_ssl ##
file = ctx.web.get_folder_by_server_relative_url(pasta).upload_file(file_name, file_content).execute_query()
return file
if __name__ == '__main__':
res = sh_upload()
print(res)
Runs fine on a network without proxy, but in the internal network behind a proxy fail with this message:
Traceback (most recent call last): File "/opt/tkapp/env_airflow/lib64/python3.9/site-packages/urllib3/connection.py", line 174, in _new_conn conn = connection.create_connection( File "/opt/tkapp/env_airflow/lib64/python3.9/site-packages/urllib3/util/connection.py", line 72, in create_connection for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): File "/usr/lib64/python3.9/socket.py", line 954, in getaddrinfo for res in _socket.getaddrinfo(host, port, family, type, proto, flags): socket.gaierror: [Errno -2] Name or service not known
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/opt/tkapp/env_airflow/lib64/python3.9/site-packages/urllib3/connectionpool.py", line 716, in urlopen httplib_response = self._make_request( File "/opt/tkapp/env_airflow/lib64/python3.9/site-packages/urllib3/connectionpool.py", line 404, in _make_request self._validate_conn(conn) File "/opt/tkapp/env_airflow/lib64/python3.9/site-packages/urllib3/connectionpool.py", line 1061, in _validate_conn conn.connect() File "/opt/tkapp/env_airflow/lib64/python3.9/site-packages/urllib3/connection.py", line 363, in connect self.sock = conn = self._new_conn() File "/opt/tkapp/env_airflow/lib64/python3.9/site-packages/urllib3/connection.py", line 186, in _new_conn raise NewConnectionError( urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPSConnection object at 0x7fd8ee90d3d0>: Failed to establish a new connection: [Errno -2] Name or service not known
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/opt/tkapp/env_airflow/lib64/python3.9/site-packages/requests/adapters.py", line 667, in send resp = conn.urlopen( File "/opt/tkapp/env_airflow/lib64/python3.9/site-packages/urllib3/connectionpool.py", line 802, in urlopen retries = retries.increment( File "/opt/tkapp/env_airflow/lib64/python3.9/site-packages/urllib3/util/retry.py", line 594, in increment raise MaxRetryError(_pool, url, error or ResponseError(cause)) urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='kyndrylde.sharepoint.com', port=443): Max retries exceeded with url: /teams/PortugalPHC (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fd8ee90d3d0>: Failed to establish a new connection: [Errno -2] Name or service not known'))
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/home/ttauto/.local/lib/python3.9/site-packages/office365/runtime/auth/providers/acs_token_provider.py", line 45, in get_app_only_access_token realm = self._get_realm_from_target_url() File "/home/ttauto/.local/lib/python3.9/site-packages/office365/runtime/auth/providers/acs_token_provider.py", line 88, in _get_realm_from_target_url response = requests.head(url=self.url, headers={"Authorization": "Bearer"}) File "/opt/tkapp/env_airflow/lib64/python3.9/site-packages/requests/api.py", line 100, in head return request("head", url, **kwargs) File "/opt/tkapp/env_airflow/lib64/python3.9/site-packages/requests/api.py", line 59, in request return session.request(method=method, url=url, **kwargs) File "/opt/tkapp/env_airflow/lib64/python3.9/site-packages/requests/sessions.py", line 589, in request resp = self.send(prep, **send_kwargs) File "/opt/tkapp/env_airflow/lib64/python3.9/site-packages/requests/sessions.py", line 703, in send r = adapter.send(request, **kwargs) File "/opt/tkapp/env_airflow/lib64/python3.9/site-packages/requests/adapters.py", line 700, in send raise ConnectionError(e, request=request) requests.exceptions.ConnectionError: HTTPSConnectionPool(host='kyndrylde.sharepoint.com', port=443): Max retries exceeded with url: /teams/PortugalPHC (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fd8ee90d3d0>: Failed to establish a new connection: [Errno -2] Name or service not known'))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/tkapp/sharepoint/sharepoint_upload_file.py", line 61, in
Is this a bug or something wrong with the script? Version of Office_REST_Python_Client==2.5.12 Thank you Fernando
Please check if your app registration has the Public Client Flows setting enabled, which is required for SharePoint:
For example, at DNS Belgium, we use Export-Microsoft365DSC with credentials instead of app registration, yet the issue persists. However, other functionalities work as expected, so we avoid exporting SharePoint and OneDrive configurations.
Duplicate to #4974?
Closing this one as stale. If the issue persists, feel free to reopen it.