windows環境下上傳檔案到阿里雲伺服器

2021-10-07 12:57:15 字數 2850 閱讀 9556

我覺得ssh傳輸檔案到阿里雲還是比較簡單的一種方式,下面顯示用python寫的**

import paramiko

transport = paramiko.transport(

('你的ip位址',22

))#ssh鏈結埠一般是22

transport.connect(username=

'你的使用者名稱'

, password=

'你的密碼'

)sftp = paramiko.sftpclient.from_transport(transport)

#如果連線需要金鑰,則要加上乙個引數,hostkey="金鑰"

sftp.put(

'要傳輸的檔案'

,'傳輸後的檔案'

)transport.close(

)#關閉連線

一開始我是想著用tcp方法的,之前沒有傳輸過檔案,不知道用ssh比較簡單,在這部分上花了很多時間,但是最終還是採用了ssh的方式。阿里雲伺服器在鏈結埠的時候,一定要在安全組裡設定相關的埠,否則很可能連不上。我一開始就是因為這個原因疑惑了半天到底是什麼原因。

# server

import socket # 匯入 socket 模組

import time

import os

s = socket.socket(

)# 建立 socket 物件

host = socket.gethostname(

)# 獲取本地主機名

port =

12345

# 設定埠

s.bind(

(host, port)

)# 繫結埠

pic_path =

'要接收的檔案位址'

s.listen(5)

# 等待客戶端連線

while

true

: conn, addr = s.accept(

)# 建立客戶端連線

print

(, addr)

r = conn.recv(

20480

) r = r.split(

)print

(r) data_len =

eval

(r[0])

#從客戶端接收到的資料很可能是帶有空格的,所以要做乙個切掉後面空格的處理

#print(data_len)

data = conn.recv(data_len)

conn.close(

)with

open

(pic_path,

'wb'

)as f:

f.write(data)

f.close(

)

客戶端這裡,我想要的時能檢測當前是否有新檔案產生,有的話才傳送檔案的效果。

import socket  # 匯入 socket 模組

import os,os.path,datetime

import time

base_dir=

"要傳輸的路徑"

l=os.listdir(base_dir)

#將當前路徑下的所有檔名以列表的形式返回到l

s = socket.socket(

)# 建立 socket 物件

host = socket.gethostname(

) port =

12345

# 設定埠號

l.sort(key=

lambda fn: os.path.getmtime(base_dir+fn)

ifnot os.path.isdir(base_dir+fn)

else0)

#給檔名排序

d1=datetime.datetime.fromtimestamp(os.path.getmtime(base_dir+l[-1

]))#返回最新一次修改的檔案的檔名

k = l[-1

]while

(true):

l=os.listdir(base_dir)

l.sort(key=

lambda fn: os.path.getmtime(base_dir+fn)

ifnot os.path.isdir(base_dir+fn)

else0)

d1=datetime.datetime.fromtimestamp(os.path.getmtime(base_dir+l[-1

]))if k != l[-1

]:#當最新的一次和上一次的檔名不一樣時,傳輸新檔案

print

(l[-1]

) k = l[-1

] photo = base_dir + k #位址的合併

with

open

(photo,

'rb'

)as f:

data = f.read(

) s = socket.socket(

) s.connect(

(host, port)

)print

("connect success!!!"

) s.send(

str(

len(data)

).encode(

'utf-8'))

s.send(data)

s.close(

)

ssh連線方式的參考:

windows上傳檔案到windows

description 從本地上傳檔案到共享目錄 param param localfilename 本地檔名 public static void smbput string localfilename catch exception e finally catch ioexception e d...

docker在windows下上傳檔案到容器

我的系統是windows10,docker是用dockertoolbox工具安裝的,安裝完之後會預設掛載windows的c users目錄,在docker裡面對應路徑是 c users,docker預設的使用者路徑是 c users windows的登入使用者名稱,對應windows的登入使用者目錄...

windows下Flask上傳檔案路徑

在windows下用flask實現上傳,上傳後總是找不到正確的資料夾路徑。修改上傳資料夾為如下的時候 upload folder sys.path 0 上傳到程式所在的當前資料夾,但是新增了當前路徑下的資料夾後就會出錯,試過了各種組合,最後找到了乙個很好的並且可以隨意任何作業系統之間遷移的方法 py...