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...