如何调试套接字错误

时间:2010-07-02 20:00:17

标签: python rest file-upload urllib2

1 upload_odl功能

import os

import urllib2_files
import urllib2

user = 'patrick'
password = 'mypass'
url = 'http://localhost:8000/api/odl/'

password_manager = urllib2.HTTPPasswordMgrWithDefaultRealm()
password_manager.add_password(
    None, url, user, password
)

auth_handler = urllib2.HTTPBasicAuthHandler(password_manager)

opener = urllib2.build_opener(auth_handler)
urllib2.install_opener(opener)

def upload_odl(filename, sky_code=46800):
    f = open(filename)

    params = {
        'installer_ac': str(sky_code),
        'pdf': {
            'fd': f,
            'filename': os.path.basename(filename),
        },
    }

    try:
        the_page = urllib2.urlopen(url, params)
        #response = urllib2.urlopen(req)
        #the_page = response.read()
    except urllib2.HTTPError, error:
        print error.read()

以及搜索和上传某些文档的第二个片段

import os
import time

from rest import upload_odl

start_time = time.time()

ODL_DIRECTORY = '/Users/patrick/Documents/ODL'
UPLOAD_DIR = 'CARICA'

directories = os.listdir(ODL_DIRECTORY)

files = 0

try:
    for dir in directories:
        c = os.path.join(ODL_DIRECTORY, dir)
        if os.path.isdir(c):
            u = os.path.join(c, UPLOAD_DIR)
            if not os.path.exists(u):
                continue
            for x in os.listdir(u):
                upload_odl(os.path.join(u, x))
                #time.sleep(1)
                files += 1

    print 'Uploaded %d files in ' % len(to_upload),

    print time.time() - start_time, " seconds"
except IOError, e:
    #edit
    import sys, import traceback
    exc_type, exc_value, exc_traceback = sys.exc_info()
    traceback.print_exception(exc_type, exc_value, exc_traceback)

    print e, os.path.join(u, x)

当我运行代码时,我在上传5次后收到此错误:

patrick:odl_uploader patrick$ python __init__.py
[Errno 32] Broken pipe /Users/patrick/Documents/ODL/name.pdf

编辑:

Traceback output:

  File "__init__.py", line 25, in <module>
    upload_odl(os.path.join(u, x))
  File "/Users/patrick/Documents/django/installer/installer_crm/tools/odl_uploader/rest/__init__.py", line 32, in upload_odl
    the_page = urllib2.urlopen(url, params)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py", line 124, in urlopen
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py", line 383, in open
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py", line 401, in _open
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py", line 361, in _call_chain
  File "/Users/patrick/Documents/django/installer/installer_crm/tools/rest/urllib2_files.py", line 207, in http_open
  File "/Users/patrick/Documents/django/installer/installer_crm/tools/rest/urllib2_files.py", line 281, in do_open
  File "/Users/patrick/Documents/django/installer/installer_crm/tools/rest/urllib2_files.py", line 194, in send_data
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/httplib.py", line 719, in send
  File "<string>", line 1, in sendall
[Errno 32] Brok

en pipe /Users/patrick/Documents/ODL/name.pdf

0 个答案:

没有答案