如何上传文件到服务器?

How to upload a file to a server?

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

你可以使用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

解决此问题的 AWS 方法是将文件上传到 S3,然后让您的存储桶可由您的 DigitalOcean 和 AWS EC2 服务器访问。这样,您的文件就有了一个中央存储设备,该设备非常耐用,可以根据需要由任意数量的服务器访问(可快速扩展)。

可在此处查看 python 的 AWS 开发工具包:
https://aws.amazon.com/sdk-for-python/

替代 AWS S3 包 (simples3)
http://sendapatch.se/projects/simples3/