実施していること
下記サンプルコードを用いて、自分のパソコン内で作成したデータをVPN接続を介し社内共有フォルダへ
データ送信するコードを作成しています。
このコードは、自分のパソコン内の「送信データ」フォルダにあるExeclファイルをサーバーにコピーし、
サーバーの「test」フォルダの中のファイルを「受信データ」フォルダの中にコピーしています。
**サンプルコード(引用:Excel×Python自動化の超基本(井沢剛著)** #共有フォルダにアクセスする import os import glob from smb.SMBConnection import SMBConnection path = os.getcwd()#現在の作業フォルダ位置を取得 sendFileFolder = os.path.join(path,"送信データ") reciveFileFolder = os.path.join(path,"受信データ") user = "" #サーバー接続ユーザー名 password = "" #サーバー接続パスワード ipAdress = "192.168.130.100" #サーバーIPアドレス(例) serverFolder = "test" #サーバーフォルダ(例) connection = SMBConnection(user,password,"myClie nt","HostServer") connection.connect(ipAdress, 139) #サーバーにデータを送信 os.chdir(sendFileFolder) #送信データフォルダに移動 for sendFile in glob.glob("*.xlsx"): with open(sendFile, "rb") as file: connection.storeFile(serverFolder, sendFile, file) #サーバーのデータを受信 os.chdir(reciveFileFolder) #受信データフォルダに移動 for reciveFile in connection.listPath(serverFolder, '/'): if reciveFile.filename =="." or reciveFile.filename == "..": continue #不要な要素を読み飛ばす with open(reciveFile.filename, 'wb') as file: connection.retrieveFile(serverFolder, reciveFile.filename, file) connection.close()
困っていること/実施したこと
上記サンプルコードを編集したところ、**“#サーバーにデータを送信”**まではエラーがないものの、
下記部分でエラーになります。
for sendFile in glob.glob("*.xlsx"): with open(sendFile, "rb") as file: connection.storeFile(serverFolder, sendFile, file) smb.smb_structs.OperationFailure: Failed to store test1.xlsx on \●●\●●\●●: Unable to connect to shared device
ちなみに、実施したこととして、**“#サーバーにデータを送信”**まではエラーがないことを確認するために、
echoを使用してサーバーとの疎通確認を行い、問題ないことを確認しました。
import os import glob from smb.SMBConnection import SMBConnection import platform path = os.getcwd()#現在の作業フォルダ位置を取得 sendFileFolder = os.path.join(path,"送信データ") reciveFileFolder = os.path.join(path,"受信データ") user = "●●●" #サーバー接続ユーザー名 password = "XXX" #サーバー接続パスワード ipAdress = "11.11.200.11" #サーバーIPアドレス serverFolder = "\\●●\●●\●●" #サーバーフォルダ connection = SMBConnection(user,password,platform.uname().node, "YYY") connection.connect(ipAdress, 139) #サーバーにデータを送信 print(connection.echo('echo success')) #結果 echo success
問題点は、下記部分にあると推測し色々調べましたが、どうしても解決することができません。
connection.storeFile(serverFolder, sendFile, file)
実施したいこと
上記問題点をクリアして、自分のパソコン内の「送信データ」フォルダにあるExeclファイルを
サーバーにコピーし、あわせてサーバー内フォルダの中のファイルを「受信データ」フォルダの中に
コピーできるようにしたいです。
お手数をおかけしますがご教示のほど宜しくお願い致します。
環境
Python 3.7 : Anaconda custom (64-bit)
Windows10
あなたの回答
tips
プレビュー