NAS からあるディレクトリごとローカルに scp でコピーします。
NAS の DICOM ディレクトリのパーミッションを「777」にしておく必要があります。
そうしないとダウンロードもできず、削除もできません。
paramiko と scp のインストール
pip install paramiko
pip install scp
python コード
import pydicom
import os
import paramiko
import scp
class Dicom:
def __init__( self ):
self.NASfrom = '192.168.0.21'
self.portFrom = 22
self.dtemp = '/var/www/html/dtemp'
self.uNamefrom = 'heno'
self.pWordfrom = 'moheno'
self.delDir(self.dtemp)
@classmethod
def delDir( self, dir ):
for root, dirs, files in os.walk(dir, topdown=False):
for name in files:
os.remove(os.path.join(root, name))
for name in dirs:
os.rmdir(os.path.join(root, name))
def scp_get( self, searchDir ):
with paramiko.SSHClient() as ssh:
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname=self.NASfrom, port=self.portFrom, username=self.uNamefrom, password=self.pWordfrom)
with scp.SCPClient(ssh.get_transport()) as scpc:
scpc.get( remote_path = searchDir, local_path = self.dtemp, recursive = True)
if __name__ == "__main__":
dcm = Dicom()
dcm.scp_get( '/volume1/DICOM/2017/12/11')