如何将文件上传到服务器?

时间:2016-06-08 05:09:14

标签: python ssh sftp remote-access

我想将文件上传到Digital Ocean和AWS的服务器。我可以通过使用scp或sftp的终端来做到这一点,但我想自动执行此操作并使用Python或任何其他编程语言执行此操作。在Python的情况下,如果我使用sftp客户端,如何将文件上传到高级别的服务器? 还有其他选择吗?

2 个答案:

答案 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/