You might see that the Dropbox Community team have been busy working on some major updates to the Community itself! So, here is some info on what’s changed, what’s staying the same and what you can expect from the Dropbox Community overall.
Forum Discussion
meister66
7 years agoExplorer | Level 3
socket.timeout: The write operation timed out
Hi,
I am trying to uload a single file based on the example code from here: https://github.com/dropbox/dropbox-sdk-python/blob/master/example/back-up-and-restore/backup-and-restore-example.py
On my Mac ist works flawlessly. But when I run the very same code on my Windows server 2018 R2 it throws the follwoing error. Python is the same version - 3.5.2. Any ideas are more than welcome.
C:\Users\Administrator\Documents\scripts\web2dropbox>python www2dropbox.py Creating a Dropbox object... upload file JTL-20180331.tar.bz2 to Dropbox /JTL-20180331.tar.bz2 Uploading ./temp/JTL-20180331.tar.bz2 to Dropbox as /JTL-20180331.tar.bz2... Traceback (most recent call last): File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-p ackages\urllib3\connectionpool.py", line 601, in urlopen chunked=chunked) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-p ackages\urllib3\connectionpool.py", line 357, in _make_request conn.request(method, url, **httplib_request_kw) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\http\c lient.py", line 1106, in request self._send_request(method, url, body, headers) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\http\c lient.py", line 1151, in _send_request self.endheaders(body) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\http\c lient.py", line 1102, in endheaders self._send_output(message_body) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\http\c lient.py", line 936, in _send_output self.send(message_body) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\http\c lient.py", line 908, in send self.sock.sendall(data) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\ssl.py ", line 891, in sendall v = self.send(data[count:]) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\ssl.py ", line 861, in send return self._sslobj.write(data) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\ssl.py ", line 586, in write return self._sslobj.write(data) socket.timeout: The write operation timed out During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-p ackages\requests\adapters.py", line 440, in send timeout=timeout File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-p ackages\urllib3\connectionpool.py", line 639, in urlopen _stacktrace=sys.exc_info()[2]) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-p ackages\urllib3\util\retry.py", line 357, in increment raise six.reraise(type(error), error, _stacktrace) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-p ackages\urllib3\packages\six.py", line 685, in reraise raise value.with_traceback(tb) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-p ackages\urllib3\connectionpool.py", line 601, in urlopen chunked=chunked) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-p ackages\urllib3\connectionpool.py", line 357, in _make_request conn.request(method, url, **httplib_request_kw) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\http\c lient.py", line 1106, in request self._send_request(method, url, body, headers) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\http\c lient.py", line 1151, in _send_request self.endheaders(body) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\http\c lient.py", line 1102, in endheaders self._send_output(message_body) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\http\c lient.py", line 936, in _send_output self.send(message_body) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\http\c lient.py", line 908, in send self.sock.sendall(data) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\ssl.py ", line 891, in sendall v = self.send(data[count:]) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\ssl.py ", line 861, in send return self._sslobj.write(data) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\ssl.py ", line 586, in write return self._sslobj.write(data) urllib3.exceptions.ProtocolError: ('Connection aborted.', timeout('The write ope ration timed out',)) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "www2dropbox.py", line 186, in <module> main() File "www2dropbox.py", line 180, in main backup2dbx(dbx, local_filename, backup_path + filename) File "www2dropbox.py", line 27, in backup2dbx dbx.files_upload(f.read(), backup_path, mode=WriteMode('overwrite')) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-p ackages\dropbox\base.py", line 2125, in files_upload f, File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-p ackages\dropbox\dropbox.py", line 272, in request timeout=timeout) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-p ackages\dropbox\dropbox.py", line 363, in request_json_string_with_retry timeout=timeout) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-p ackages\dropbox\dropbox.py", line 447, in request_json_string timeout=timeout, File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-p ackages\requests\sessions.py", line 555, in post return self.request('POST', url, data=data, json=json, **kwargs) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-p ackages\requests\sessions.py", line 508, in request resp = self.send(prep, **send_kwargs) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-p ackages\requests\sessions.py", line 618, in send r = adapter.send(request, **kwargs) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-p ackages\requests\adapters.py", line 490, in send raise ConnectionError(err, request=request) requests.exceptions.ConnectionError: ('Connection aborted.', timeout('The write operation timed out',)) C:\Users\Administrator\Documents\scripts\web2dropbox>
Many Thanks,
Meister
Thanks! The single files_upload method used in that sample is only meant for files up to 150 MB in size. That isn't necessarily a strict limit though, so files larger than that may or may not fail, and it may be inconsistent across different machines/network connections. For large files, you'll need to switch to upload sessions.
- Greg-DBDropbox Staff
How big is the file you're trying to upload when this occurs? The sample doesn't use upload sessions, so it can only handle small files. If you need it to support large files, you'll need to update it to use upload sessions.
Otherwise, this might just indicate transient server/network issues. If you're still seeing this, there may be something interfering with your connection. Do you have anything on that network connection, e.g., firewall or proxy, that may be preventing your app from successfully connecting to the Dropbox servers?
- meister66Explorer | Level 3
The file is 250-300MB. As mentioned, it worked on my Mac on which I tested the script first with the same file. The datapath is identical and local firewall on the windows server is switched off
- Greg-DBDropbox Staff
Thanks! The single files_upload method used in that sample is only meant for files up to 150 MB in size. That isn't necessarily a strict limit though, so files larger than that may or may not fail, and it may be inconsistent across different machines/network connections. For large files, you'll need to switch to upload sessions.
About Dropbox API Support & Feedback
Find help with the Dropbox API from other developers.
5,910 PostsLatest Activity: 4 days agoIf you need more help you can view your support options (expected response time for an email or ticket is 24 hours), or contact us on X or Facebook.
For more info on available support options for your Dropbox plan, see this article.
If you found the answer to your question in this Community thread, please 'like' the post to say thanks and to let us know it was useful!