我想将文件上传到Digital Ocean和AWS的服务器。我可以通过使用scp或sftp的终端来做到这一点,但我想自动执行此操作并使用Python或任何其他编程语言执行此操作。在Python的情况下,如果我使用sftp客户端,如何将文件上传到高级别的服务器? 还有其他选择吗?
答案 0 :(得分:3)
你可以使用pysftp包;
import pysftp
with pysftp.Connection('hostname', username='me', password='secret') as sftp:
with sftp.cd('public') # temporarily chdir to public
sftp.put('/my/local/filename') # upload file to public/ on remote
sftp.get_r('myfiles', '/backup') # recursively copy myfiles/ to local
https://pypi.python.org/pypi/pysftp
它也在内部使用paramiko我猜哪些可以用于ssh,sftp等。http://docs.paramiko.org/en/1.17/api/sftp.html
答案 1 :(得分:0)
AWS的方法是将文件上传到S3,然后让您的数据块和AWS EC2服务器访问您的存储桶。这样,您就可以为文件配备一个中央存储设备,该设备非常耐用,可以根据需要由多个服务器访问(可快速扩展)。
可以在此处查看适用于python的AWS开发工具包:
https://aws.amazon.com/sdk-for-python/
替代AWS S3包(simples3)
http://sendapatch.se/projects/simples3/