다중 스레드 업로드를 시도하고 있지만 오류가 발생합니다. ftplib에서 멀티 스레드를 사용하는 것이 불가능할 수도 있습니다.다중 스레드 업로드에 ftplib 사용
인상 error_reply 같은 FTPLIB 오류
class myThread (threading.Thread):
def __init__(self, threadID, src, counter, image_name):
self.threadID = threadID
self.src = src
self.counter = counter
self.image_name = image_name
threading.Thread.__init__(self)
def run(self):
uploadFile(self.src, self.image_name)
def uploadFile(src, image_name):
f = open(src, "rb")
ftp.storbinary('STOR ' + image_name, f)
f.close()
ftp = FTP('host') # connect to host, default port
ftp.login() # user anonymous, passwd [email protected]
dirname = "/home/folder/"
i = 1
threads = []
for image in os.listdir(dirname):
if os.path.isfile(dirname + image):
thread = myThread(i , dirname + image, i, image)
thread.start()
threads.append(thread)
i += 1
for t in threads:
t.join()
가져 오기 무리 error_reply RESP : 나는 하나 하나를 업로드하려고하면 I
로 설정 200 유형 여기
내 코드를 제공 , 다 잘 작동
ftplib에 멀티 스레드 지원이 있어도 어떻게 작동합니까? 각 스레드가 동일한 파일을 모두 업로드하려고 시도합니다. –
왜 똑같습니까? 만약에 'for'사이클에서 쓰레딩없이 함수를 호출하면 올바르게 작동합니다. 그것은 – Arty
oops의 모든 파일을 전달하고 파일 열기 코드를 잘못 읽었습니다. 어쨌든 라이브러리가 스레드 안전 또는 동시 ftp 세션을 제공하지 않는다고 가정하는 것이 안전하다고 생각합니다. 어쨌든 –