paramiko中putof檔案上傳問題優化

2021-10-13 10:08:12 字數 2346 閱讀 2795

paramiko模組大檔案上傳

1. 遇到paramiko大檔案上傳後端速度瓶頸

def

put_file_by_fl

(self, fl, remote_path, file_size=

none

,callback=

none):

with self as cli:

sftp=cli.open_sftp(

)print

('kkkkkkk'

) sftpclient_large.putfo_large(sftp,fl, remote_path, file_size=file_size,callback=callback)

# sftp.putfo_large(fl, remote_path, file_size=file_size,callback=callback)

size =

0while

true

:if file_size >=

104857600

:print

("開始寫入。。。。。。"

)# data=reader.read(20971520)

data = fl.read(

10485760

)print

(f"這是大檔案"

)else

:print

("這不是大檔案!"

) data = fl.read(

32768

) fr.write(data)

size +=

len(data)

iflen

(data)==0

:break

if callback is

notnone

: callback(size, file_size)

這裡修改上傳速度為10mb,還是有點慢,估計跟python非同步io效能這塊也有關係吧。

}};2.然後需要用到nginx的話,在nginx配置如下,因為可能會報錯504 time_out

fastcgi_connect_timeout 1200s;

#原設定為300s

fastcgi_send_timeout 1200s;

#原設定為300s

fastcgi_read_timeout 1200s;

#原設定為300s

fastcgi_buffer_size 64k;

fastcgi_buffers 4 64k;

fastcgi_busy_buffers_size 128k;

fastcgi_temp_file_write_size 256k;

好睡眠來自有exit0

你們覺得呢?

Python中Paramiko協程方式詳解

什麼是協程 協程我們可以看做是一種使用者空間的執行緒。作業系統對齊存在一無所知,需要使用者自己去排程。比如說程序,執行緒作業系統都是知道它們存在的。協程的話是使用者空間的執行緒,作業系統是不知道的。為什麼要使用協程 與執行緒不同,協程是自己主動讓出cpu,並交付它期望的下乙個協程執行,而不是在任何時...

62256中文資料

62256中文資料 62256是32k的低功耗靜態ram儲存器.用p0和p2來擴充套件外部ram 就是用p0和p2與62256對應的管腳相連線 假設p2.7接wr,p2.6接rd,p2.5接cs,那麼就可以確定個外部ram的乙個位址,想往外部ram的乙個位址寫乙個位元組時,位址可以定為xbyte 0...

DataTable 中,應用Linq文

linq文通常用於代替sql文進行資料查詢。其簡潔和舒服的表達形式,深受本人喜愛。最近在普通的物件資料操作時,也用類似的方法進行操作。var sumrows dt.copy select tolist groupby m new tolist dt.clear sumrows.foreach m d...